4) __FUNCTION__:宏在预编译时会替换成当前的函数名称 5)类似的宏还有 __TIME__,__STDC__, __TIMESTAMP__等,就全然当一个变量来使用就可以。 宏连接符##: 举个样例:宏定义为#define XNAME(n) x##n,代码为:XNAME(4),则在预编译时,宏发现XNAME(4)与XNAME(n)匹配,则令 n 为 4,然后将右边...
变量即把程序运算的中间结果临时存到内存里,以备后续调用。 1.定义规则 a)变量名只能是字母、数字或下划线的任意组合 b)变量名的第一个字符不能是数字 c)关键字不能声明为变量名 2.定义方式 驼峰体:NumberOfStudents 下划线:number_of_students(官方推荐) 3.变量名注意事项 变量名尽量不为中文、拼音等,不宜过...
3666voidtest_func(void)3667{36683669}36703671voidTEST_FUNC1(void)3672{36733674}36753676voidjx_gatt_event_loop(void)3677{36783679test_func();36803681368236833684} **通过上面的代码分析,以及预处理后的文件的对比,我们可以发现,宏定义的名称与函数同名,本身并没有问题;但是如果宏定义对应的函数名,没有被定义,...
1. appeared, where function-name is the name of the lexically-enclosing function. This name is the unadorned name of the function. __FUNCTION__ is another name for __func__. Older versions of GCC recognize only this name. However, it is not standardi...
19//调用时,实参只需填入参数为(int,int)型的函数地址(函数名即位函数地址) 20printf("max = %2d\r\n",compare(max,temp1,temp2)); 21 } 运行结果: 宏定义#undef以及多行宏定义 #undef 将已定义的宏定义撤销; 多行宏定义 宏定义内容过长或为了阅读便利而将一行内容拆分为多行 ...
宏定义用 # 号,#出现在宏定义中,表示对后面的变量替换的时候,用双引号""括起来。举个例子,请...
使用defined(X)定义宏是一种在编程中用来判断某个宏是否已经被定义的方法。它是C/C++预处理器提供的一个指令,用于在编译之前对代码进行预处理。 宏定义是一种在代码中定义的符号常量,可以用来代替一段代码或者一个值。在使用宏定义时,我们可以使用defined(X)来判断某个宏是否已经被定义。
1 部分编译器支持函数名默认宏定义。编译器提供一个自带的宏,名字有__FUNCTION__和__func__两种,因编译器不同而不同。如果支持该类宏情况下,这个宏实际值为一个字符串,内容为调用宏位置的函数名。所以,要输出函数名,可以 define LOG(fmt, args...) printf("%s:"fmt,__FUNCTION__,##...
变量命名格式:变量名称第一个单词首字母小写,其余单词首字母大写。 例子:spiArrayNum 函数命名格式:函数名称所有单词首字母都用大写。 例子:GpioConfig 宏定义命名格式:所有字母都用大写,每个单词用下划线分隔。 例子:TASK_ID 常量命名格式:加前缀C,其余字母大写,每个单词用下划线分隔。