嵌入式C第二次

Typedef
typedef用于为现有类型创建一个新的名字,或称为类型别名,用来简化变量
的定义。typedef在MDK用得最多的就是定义结构体的类型别名和枚举类型了。
如:

typedefstruct
{
u16seq_num;
u16len;
u8dev_id[GPRS_PRO_DEVICE_ID];
u16command_id;
u8*pro_data;
}gprs_pro_cmd_t;

然后我们就可以直接使用gprs_pro_cmd_t定义一个结构体变量。

结构体
1一般形式:Struct结构体名{成员列表;}变量名列表;
2这样是声明后直接定义,也可以先声明,后定义;
如:
Struct结构体名字{成员列表;};
例如:structU_TYPEusart1,usart2;
注意:结构体指针成员变量引用方法是通过“->”符号实现;
运用:在我们定义函数的形参时,形参数量较多的情况下,一旦修改就会很麻烦。
因此将形参使用结构体进行统一定义,进行组合。

宏定义

预处理命令:预处理命令是在编译源程序钱先对源程序进行处理,预处理完成后,编译器开始编译源程序生产可执行代码,因为预处理指令不是c语言的一部分,所以每条编译预处理命令不需要以分号结束
宏定义:宏:c语言标准允许在程序中用一个标识符来表示一个字符串,标识符称为宏名,在编译预处理时,将程序中所有的宏名用相应的字符来替换,这个过程称为宏替换
无参数的宏
#define 标识符 字符串 #表示这是个预处理命令define是宏定义的关键字,标识符是宏名,字符串是宏名所替换的内容,可以是常数,表达式
宏替换是在程序中用相应的字符串来替换名,编译器预处理程序不会对他做任何检查,如果有错误,只有在编译程序的时候才会被编译器发现
习惯上宏名用大写字母,但是用小写字母也可以
宏的作用范围是从宏定义开始到本源程序文件结束为止,也可以使用#undef来提前终止

条件编译

条件编译是根据实际定义宏(某类条件)进行代码静态编译的手段。可根据表达式的值或某个特定宏是否被定义来确定编译条件。

最常见的条件编译是防止重复包含头文件的宏,形式跟下面代码类似:

 #ifndef ABCD_H
 #define ABCD_H
 
 // ... some declaration codes
 
 #endif // #ifndef ABCD_H

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值