嵌入式开发(一)⑨浅谈#define宏定义

define基本格式

基本样板

#define 宏名 宏体
(不做任何数据类型的操作,仅仅是替换文本的作用)

常用样例:

#define OK 		1
#define FALSE 	0
// 等价于 enum state{FALSE, OK};
补充:
        使用OK时,就相当在使用1 == 在c语言源码编译时被编译器处理,将OK替换为1
      (说明,#define这样的预处理指令,本身是属于编译器指令部分,不是c语言本身的规则)

define宏函数

基本样板 :

#define 宏名(x) 简单函数内容
// x为传入的参数,这个宏在使用时,会被转换为 简单函数内容
//记得每一个实用参数用括号括起来,避免出现歧义

常用案例

#define POWERS(x)         ((x) * (x))
// 使用POWERS(x),会被编译后替换为((x) * (x))  —— 一个数的平方
补充:
使用宏函数时,替换字符尽量简单,注意避免歧义,同时宏名尽量大写(一般规则)
特别的:
                  #define SYMBLE(x, n) x ## n
                  //x ## n , 实现联接
                  #define STRING_S(x) #x
                  //# x , 实现串化---即字符(串)化

define宏定义

基本样板

#define 宏名 宏体

常用案例:

#define infos  "The author is xxx!"
// 用于长复杂的表达式或者字符的替换,取一个新的标记来替换

你可能感兴趣的:(嵌入式开发总结,c语言,嵌入式)