c语言获取函数名的宏 c语言获取文件名函数( 二 )


(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查 , 预处理不做语法检查 。
(4)宏定义末尾不加分号 。
(5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头 。
(6)可以用#undef命令终止宏定义的作用域 。
(7)宏定义不可以嵌套 。
(8)字符串" "中永远不包含宏 。
(9)宏定义不分配内存,变量定义分配内存 。
(10)宏定义不存在类型问题,它的参数也是无类型的 。
参考资料:
百度百科--宏定义
C语言中的宏定义怎么用?C语言中c语言获取函数名的宏的宏定义用法分为两种 。
1、不带参数c语言获取函数名的宏的宏定义比较简单,就是用一个指定的标识符来代表一个字符串 。它的一般形式为“#define 标识符 字符串”,例如#define E 2.718281828459 。这种方法使用户能以一个简单的名字代替一个长的字符串 。
2、带参数的宏定义不是仅仅进行简单的字符串替换,还要进行参数替换 。其定义的一般形式为c语言获取函数名的宏;“#define 标识符(宏名)(参数表) 字符串”,字符串中包含在括号中所指定的参数 。例如#define S(a,b) a*b area=S(3. 2) 。
扩展资料:
宏定义只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回),每次执行都要载入 , 所以执行相对宏定义会较慢 。
使用宏定义次数多时,宏定义展开后源程序很长,因为每展开一次都使程序增长,但是执行起来比较快一点(这也不是绝对的,当有很多宏定义展开,目标文件很大,执行的时候运行时系统换页频繁 , 效率就会低下) 。而函数调用不使源程序变长 。
关于c语言获取函数名的宏和c语言获取文件名函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读