C# 宏定义,宏定义函数
目录
1.参考
2.宏定义中特殊符号的含义
日期:2018年9月171日。参考文献2。宏定义中特殊符号的含义。宏定义语句连接符\:根据C/C宏定义,宏定义只允许写在同一行,下一行不属于这个宏定义。但是在实际的宏定义过程中,经常会出现复杂的宏定义,这些宏定义太长,写在一行里不容易读懂,所以需要根据逻辑关系换行。此时,宏定义参数连接器# #: # #主要用于链接宏定义中的两个标记。这里的标记可以是宏变量、任意参数或标记。定义符号#: #可以是后面宏参数的串线操作。简单来说,就是在它所引用的宏变量被替换后,在它们的左右两边加上一个双引号。定义宏符号# @:将标记转换为对应的单个字符,注意:仅对单个标记转换有效。比如#define B(x) #@x表示B(a)表示‘a’,B(1)表示‘1’,但是对于B(abc)就不是很有效。
例子如下:
#包含stdio.h
#定义f(a,b) a##b
#定义g(a) #a
#定义h(a) g(a)
#定义k(a) #@a
#定义测试(类型)\
test1(类型,1) \
test1(类型,4) \
test1(类型,6) \
测试1(类型,8)
int main()
{
printf(%s\n ,h(f(1,2)));
printf(%s\n ,g(f(1,2)));
printf(%s\n ,k(m));
返回0;
}输出是:
12
12
m进一步理解了这两个宏定义符号的含义:
# #连接符号由两个井号组成,其作用是将宏定义中的两个带参数的token连接起来,从而形成一个新的子串。但不能是第一个或最后一个子串。所谓记号,是指编译器能够识别的最小语法单位。
#符号是将传递的参数替换为字符串。
结束了!
,转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。