这个程序是编译不过去的,因为宏定义在同名函数定义之前,预编译到print函数时,其名称也被当做宏进行处理,预编译完毕后,编译器编译是程序显然是不对的。如果程序的文件名称是test.c,则linux环境可以通过命令gcc -E test.c > test.i,可以看到预编译结果,有心者可以自己分析下,仔细看看print函数的预编译结果。 如果...
The square of8is64 2. ##运算符可以用于宏函数的替换部分 ##就是个粘合剂,将前后两部分粘合起来,也就是有“组成变量名”的意思。特别要和#运算符的功能区分开来,#是连接字符串,而##是连接变量名。 但是“##”不能随意粘合任意字符,必须是合法的C语言标示符。在单一的宏定义中,最多可以出现一次“#”或...
如果二者作用域没有交叉,那么可以把函数名定义为static。或者在使用宏的地方,不要声明该函数。否则,只能改掉其中一个名字。推荐宏名用全大写字母。函数名用全小写字母或者单词开头字母大写。 这样就不会冲突了。而且根据名字 一眼就可以看出来是宏还是函数。
C语言变量、函数、宏定义命名格式 变量命名格式:变量名称第一个单词首字母小写,其余单词首字母大写。 例子:spiArrayNum 函数命名格式:函数名称所有单词首字母都用大写。 例子:GpioConfig 宏定义命名格式:所有字母都用大写,每个单词用下划线分隔。 例子:TASK_ID 常量命名格式:加前缀C,其余字母大写,每个单词用下划线分隔...
{代码...} 函数名加括号即可! C函数库中描述 一个函数的任何宏定义都可以通过用括号把函数名括住来局部抑制他,因为这个名字后面没有跟着指示宏函数名展开的...
1.简洁明了:宏函数参数的名称应简洁明了,便于记忆和理解,避免使用冗长或难以理解的名称。 2.准确描述参数含义:参数名称应准确描述其含义,便于其他开发者快速理解其作用。例如,如果宏函数参数用于指定数组的大小,则可以将其命名为“array_size”。 3.避免使用模糊或容易混淆的名称:宏函数参数的名称应避免使用模糊或容...
关于C语言宏的叙述中正确的是( )。 A. 宏名必须用大写字母表示 B. 宏定义必须位于源程序中所有语句之前 C. 宏调用比函数调用耗费时间 D. 宏替换没有数据类型限
C语⾔标准宏获取⽂件名、⾏号、函数名的⽅法以及#和##的⽤ 法 ⼀、前⾔ 在后台程序运⾏出问题时,需要查看详尽的⽇志,触发点⽂件名、⾏号、函数名的⽅法,关键是利⽤C99新增的预处理标识符 __VA_ARGS__;先介绍⼏个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的...
C语言解决函数名与宏冲突 #include<stdio.h>voidf() { printf("function\n"); }#definef() printf("macro\n")intmain() { f();//macro(f)();//functionreturn0; } 函数名加括号