C语言入门-类型定义
一、自定义数据类型(typedef)
- c语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字,比如:
- typedef int length; 这样length成为了int类型的别名
- 这样,length这个名字就可以代替int出现在变量定义和参数声明的地方了
length a,b,len;
length numbers[10];
二、Typedef
声明新的类型的名字
- 新的名字是某种类型的别名
- 改善了程序的可读性
typedef long int64_t;
typedef struct ADate{
    int month;
    int day;
    int year;
} Date;
int64_t i = 100000000000;
// ADate是结构体原来的名字,这里可以直接使用Date
Date d = {9,1,2020};
或者直接这样
typedef struct{
    int month;
    int day;
    int year;
}Date;
记住最后一个就是新的名字
typedef int Length;  // Length就等价于int类型
typedef *char[10] String; // String是10个字符串的数组的类型
typedef struct node{
    int data;
    struct node *next;
}aNode;
// 这样用aNode就可以代替struct node
typedef struct node aNode;
联合
- 存储
- 所有的成员共享一个空间
- 同一时间只有一个成员是有效的
- nuion的大小是其最大的成员
 
- 初始化
- 对第一个成员初始化
 
C语言入门-类型定义的更多相关文章
- 编译器开发系列--Ocelot语言4.类型定义的检查
		这里主要介绍一下检查循环定义的结构体.联合体.是对成员中包含自己本身的结构体.联合体进行检查.所谓"成员中包含自己本身",举例来说,就是指下面这样的定义. struct point ... 
- [Objective-C语言教程]类型定义:typedef(19)
		Objective-C编程语言提供了一个名称为typedef的关键字,可以使用此关键字为类型指定新名称. 以下是为单字节数字定义术语BYTE的示例 - typedef unsigned char BY ... 
- C语言bool类型定义
		在我们的C语言程序中,经常用到布尔类型,但是C标准并不支持布尔类型,但我们可以自己实现其类型,实现代码如下:typedef enum{ false = 0, ture = !false}bool; 
- C语言学习笔记--类型定义&联合
		一.类型定义 C语言自定义数据类型 (typedef) C语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字. typedef int Length; 使得Length成为int类型 ... 
- 网易云课堂_C语言程序设计进阶_第三周:结构:结构、类型定义、联合
		3.1 枚举 3.2 结构 3.3 类型定义 3.1 枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法来表明: enum 枚举类型名字{名字0,...,名字n}; 枚举类型名字通常并不 ... 
- [C语言]进阶|结构类型: 枚举, 结构, 类型定义
		--------------------------------------------------------------------- 枚举: // main.c #include <std ... 
- 2.go语言入门----变量类型、声明变量、数组、切片
		基本变量类型 介绍几种基本的变量类型:字符串.int.float.bool package main import ( "fmt" ) // 列举几种非常基本的数据类型 func ... 
- 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书
		<C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ... 
- Swift语言入门之旅
		Swift语言入门之旅 学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ... 
随机推荐
- windows下RocketMQ下载安装教程
			一.下载(原文链接:http://www.studyshare.cn/software/details/1183/0 ) 1.官网下载:下载地址 2.百度网盘下载:下载地址 提取码:0g5a ja ... 
- Java修炼——键盘输入,字节转换流
			键盘控制输入字符,并且有转换流(InputStreamReader)加入,同样也是使用了缓冲. package com.bjsxt.ioproject; import java.io.Buffered ... 
- rbac结合ssm实现权限分配和管理
			RBAC(Role-Based Access Control )基于角色的访问控制. RBAC 认为权限的过程可以抽象概括为: 判断[Who 是否可以对 What 进行 How 的访问操作(Opera ... 
- 大神带你一天了解zabbix(一)
			第15章 Zabbix的搭建 15.1 为什么使用监控服务 对系统实现不间断的监控,实现报警通知(电话,微信,邮件,发短信,手环) 实时反馈系统当前的状态信息 保证服务的可靠安全性 保证业务的稳定运行 ... 
- Asp.net Core 异常日志与API返回值处理
			需求: 1.对异常进行捕获记录日志 并且修改返回值给前端 解释: ILogger4是自定义的一个日志,更改它就好 解决方案1: 使用中间件进行异常捕获并且修改其返回值 public class Err ... 
- Appium之实操(了解配置项)
			使用Appium,测试对象APP的运行环境有两种:① 真实设备 如手机 ②模拟器 如夜神 连接真实设备: - 进入开发者模式,启动usb调试 - 在电脑上 执行adb命令 adb devices ... 
- 【Vuejs】269- 提升90%加载速度——vuecli下的首屏性能优化
			前言 之前用 ,所以接下来还会介绍一些它们在优化上的异同 分析 vuecli 2.x自带了分析工具只要运行 npm run build --report 如果是 vuecli 3的话,先安装插件 cn ... 
- redis(4)--redis集群之主从复制
			集群 先来简单了解下redis中提供的集群策略, 虽然redis有持久化功能能够保障redis服务器宕机也能恢复并且只有少量的数据损失,但是由于所有数据在一台服务器上,如果这台服务器出现硬盘故障,那就 ... 
- Java8-Lamda和Stream原理引入
			一说明 这边文章主要是带大家为什么会有lamda表达式的出现,流式思想的产生.具体的Lamda表达式操作,Stream流会在后面的文章更新,有兴趣的朋友也可以加一下我微信公众号,分享学习干货. 二ja ... 
- RabbitMQ之交换机及spring整合
			交换机 交换机属性: Name:交换机名称 Type:交换机类型 direct.topic.fanout.headers Durability:是否需要持久化,true为持久化 Auto Delete ... 
