(至少有一个与省略号相对应的参数,但该参数可以为空。)宏TEST至少要有两个参数,第一个参数匹配condition,剩下的参数匹配省略号。 注意事项 在每一个宏替换的变量两边都要加爱上圆括号, 这样可以防止宏替换之后的代码意义改变. 多行的宏定义, 在断行位置需要加上反斜杠(转义); 单一的井号后接变量名, 这种用...
宏定义中可以包含其他宏,即嵌套宏; 预处理部分不是C语言的定义语句,所以宏定义完成之后是不带分号(😉的 2..1.2 宏的作用域: 由#define的作用域从文件中的的定义点开始,直到用#undef指令取消宏为止或者直到文件尾为止(由二者中最先满足的那个结束宏的作用域)。 2.1.3 宏的作用: 很大程度上是为了提高代码的...
转义字符 C 语言提供了一类特殊的字符,是由 \ 和特定字符组合而成,称之为 转义字符。他们都是 ==一个== 字符,如:‘\n’ 这是 1 个字符。 代表 回车换行(回车键)。‘\t’ 也是 1 个字符。代表 制表符 (Tab键)。‘\b’ 同样是 1 个字符。 代表 退格符(Backspace 键)。‘\0’ 是一个...
当作为字符常量使用时,转义序列必须用一对单引号括起来,而采用数字转义序列的方式来表示某个字符常量可能会使代码的可读性降低,可以使用#define宏定义的方式进行命名: #defineESC '\33'/* ASCII escape character */ 三字符序列 (trigraph sequence) 前面我们提到了问号这个特殊字符也需要一个转义序列是由于三字符序...
另一个带参宏,也不会在进行宏展开替换;如果该参数为一个字符串常量,那么预处理器会 分别为字符串前后的"号进行转义,将"变成字符,然后在前后各插入一个"; 例: #defineTEST0(p1) #p1"333"#defineTEST(p1,p2,p3) #p1#p2 #p3intmain(){intnTest1;intnTest2;intnTest3;printf("%s",TEST(TEST0(0),...
1. 转义字符:反斜杠可以将后面的字符转义为特殊字符,例如:- \n:换行符 - \t:制表符 - \r:回车符 - \b:退格符- \':单引号- \":双引号- \\:反斜杠本身2. 字符串转义:反斜杠可以用于将字符串分为多行,例如:```cchar *str = "This is a \long string";```上面的代码相当于将字符串拼接为...
总结一下就是:define可以替换常量、简单的运算公式、C语句。其本质:是字符串的整体代换!我们一般把宏定义放在头文件的下面,函数的上面,这样显得有层次感。 变量 常量讲完了,我们来说说变量。之前初识常量、变量的时候说过,变量是程序运行时可以发生改变的量。
‘\0’转义字符在ASCII表中并不表示阿拉伯数字0,阿拉伯数字0的ASCII码48,‘\0’转义字符的ASCII码值为0,它表示的是ASCII控制字符中空字符的含义,代码为NUL,非NULL。NULL一般是一个宏定义,比如在<stddef.h>头文件中专门为空指针定义的一个叫NULL的宏,即NULL可以被定义为(void *)0。
#define定义宏 #define允许把参数替换到文本中,这种实现通常被称为宏,或定义宏 definename(由逗号隔开的符号) stuff 举例: #include<stdio.h> #define SQUARE(x) x*x intmain() { printf("%d",SQUARE(3)); ...