宏定义以换行结束,不需要分号等符号作分隔符。如有以下定定义: # define PI 3.1415926; 原希望用PI求圆的周长的语句 c=2*PI*r; 经宏展开后,变成 c=2*3.1415926*r; 这就不能达到希望的要求。 带参数宏定义进一步扩充了无参数宏定义的能力,在字符序列替换同时还能进行参数替换。带参数定定义的一般形式为 # ...
} 在上面的代码中,PRINT_WITH_NEWLINE宏定义包装了打印操作,并在输出字符串后添加了std::endl来实现自动换行。这样,在使用这个宏的地方,你只需要提供要输出的内容,而不用显式地写std::cout << ... << std::endl。 这种方法可以让你更方便地在代码中进行打印,并且确保每次输出都自动换行。如果你需要在多处...
# define PRINT(format, ...) printf(# format, ##__VA_ARGS__) // 注意:符号 \ 在宏定义中是代表换行 // 注意宏定义里的do{}while(0)语句是故意不打分号,这样在主程序调用宏时,可以很好配合宏后面跟着的分号. // 宏定义中不要在do{}while(0)语句后面加分号写成了 do{}while(0); 这样就没有...
1.c的编译器是根据“;”来判断是否为一个语句的,所以只要不在小括号中换行都是可以的。 2.不要把空格夹在中间! 字符串常量定义时的换行问题 如果我们在一行代码的行尾放置一个反斜杠,c语言编译器会忽略行尾的换行符,而把下一行的内容也算作是本行的内容。这里 反斜杠起到了续行的作用。 构建较长的字符串...