C语言-1.结构体,2.枚举,3.typedef,4.预处理指令的概念,5.条件编译
1. 结构体数组
定义:由若干个相同类型的结构体变量组成的有序的集合。
定义格式:
1) 定义结构体的同时定义结构体数组
struct Car{
int lunzi;
int speed;
}cars[5];
2) 使用匿名结构体定义数组
struct {
int lunzi;
int speed;
}cars[5];
3)先定义结构体,再定义结构体数组
struct Car cars[5];
初始化:
1) 定义结构体数组的同时进行初始化
struct Car{
int lunzi;
int speed;
char name[20];
}cars[2]={{2,50},{80,300}};
2) 匿名
struct {
int lunzi;
int speed;
int speed;
}cars[2]={{2,50},{80,300}};
3) 定义结构体数组初始化
struct Car cars[2]={{2,50},{80,300}};
通过数组角标整体去初始化 cars[1]=(struct Car){6,100};
注意:如果结构体成员是字符数组类型时
使用: strcpy, scanf 函数进行赋值
2.枚举
使用场合:在开发中,如果一个变量只有有限的几个取值,可以使用枚举
1)枚举类型
enum 枚举类型名{枚举值1,值2,值3,...};
2)枚举类型的变量
enum SEX{man,women,yao}isex;
enum {man,women,yao}s1;
enum SEX s2;
3)枚举类型变量的使用
1)枚举元素的值
系统默认给枚举变量第一元素赋值为0,后面的元素依次是上一个元素+1
2)给枚举类型变量赋值
isex = man;
printf("%d\n",isex);
3.typedef
定义:给已经存在的数据类型取一个别名
格式:typedef 原类型 新类型名; //新类型名尽量要大写
格式: typedef 源类型名 新类型名
1、基本数据类型
typedef int MALATANG; 别名: MALATANG
2、用在数组,给数组起别名
typedef int ARRAY[5]; 别名: ARRAY
3、给结构体其别名
typedef struct Person P; 别名: P
typedef struct { int screenSize; int ram;} IPHONE; 别名: IPHONE
4、给枚举类型起别名
typedef enum Sex{kSexMan,kSexWomen,kSexYao} ISEX; 别名: ISEX
5. 给函数指针起别名
typedef int (*FUN)(int,int); 别名:FUN
4.预处理指令
定义:以“#” 开头的一些特殊的指令
作用: 在编译之前做些处理(宏展开,条件编译,文件包含)
常见的预处理指令: 宏
宏:特殊的标示符
宏替换 :在编译之前,在源文件中,所有出现宏名的地方 都用宏代表的字符串 去替换
注意:宏不是语句,不需要分号结束
1)无参宏
#define 宏名 宏代表的字符串
#define M 10
#define AREA 3.14*M*M
#define PI 3.14
2)有参宏
#define Mi(y) y*y+3*y // y 是形参,不分配空间,不需要写类型
#define MAX(a ,b) a>b?a:b
#define SUM(a,b) a+b
5.条件编译
当条件满足的时候去编译一段代码
好处:可移植、生成更小的目标文件
格式:
#if
#elif
#else
#endif
C语言-1.结构体,2.枚举,3.typedef,4.预处理指令的概念,5.条件编译的更多相关文章
- C#语言基础——结构体和枚举类型
结构体和枚举类型 一.结构体(struct) 结构类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要 ...
- C语言回顾-结构体、枚举和文件
1.构造类型 根据已经定义的一个或多个数据类型用构造的方法来定义. 分为:数组.结构体和共用体 2.结构体 struct 结构体名{ 成员列表: }; 1)结构体定义完成以后,计算机不会给结构体分配存 ...
- C语言基础(19)-结构体,联合体,枚举和typedef
一.结构体 1.1 结构体struct定义及初始化 #include <stdio.h> // 这个头文件在系统目录下 #include <stdlib.h> // 使用了sy ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- C语言中结构体赋值问题的讨论
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- C语言的结构体和C++结构体的区别
关于C++中声明结构体中需要使用构造器创建实例对象的语法: <C++的结构体构造方法的基本概念:结构体的构造方法需要和结构体的名字相同,并且无返回值,也不要void关键字,这样的方法就是构造器的 ...
- 01.C语言关于结构体的学习笔记
我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record) ...
- C语言中结构体对齐问题
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...
- c# 函数练习;结构体、枚举类型
* 结构体 1.就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 注意:枚举类型和结构体都属于值类型. 2.定义的方法: struct student { public in ...
随机推荐
- Codeforces Round #386 (Div. 2) A+B+C+D!
A. Compote 水题(数据范围小都是水题),按照比例找最小的就行了,3min水过. int main() { int a,b,c; while(~scanf("%d%d%d" ...
- POJ-2421Constructing Roads,又是最小生成树,和第八届河南省赛的引水工程惊人的相似,并查集与最小生成树的灵活与能用,水过~~~
Constructing Roads Time Limit: 2000MS Memory Limit: 65536K Description There are N v ...
- oracle sqlplus 导出csv文件
et colsep , set feedback off set heading off set trimout on spool D:\DBoracle\lfc.csv select '" ...
- [NOIP2000] 提高组 洛谷P1022 计算器的改良
题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先生. ...
- [USACO12MAR]拖拉机
题目描述 After a long day of work, Farmer John completely forgot that he left his tractor in the middle ...
- 数据库备份与还原c#.net实现
原文发布时间为:2008-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 数据库备份与还原c#.net实现: 页面上面有 备份,还原,下拉菜单(浏览备份文件夹下面的所有文件名),删除(删除 ...
- 用DW制作简单的浮动广告
原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] 浮动广告可以用层和时间轴结合做出,先选择你的dreamweaver“窗口”,然后从“窗口”菜单中选择“时间轴”,时 ...
- vi/vim复制粘贴命令
1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下: y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用: ...
- rabbitmq management Login Failed
默认用户guest 只允许localhost登录. so... 我们自己建立用户 1. 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码. 相应的命令 (1) 新增一个用户 rab ...
- XCode warning:“View Controller” is unreachable because it has no entry points
Unsupported Configuration: “View Controller” is unreachable because it has no entry points, and no i ...