#
网上看到这样一段代码
还是挺无聊的,于是想到一个问题,宏替换的时候假如有多个匹配,应该匹配哪一个的问题,于是实验如下:
#include
#define aaa "3a"
#define a "1a"
#define aa "2a"
int main(int argc, const char *argv[])
{
printf("%s
",aaa);
}
这里最终输入结果是3a,也符合我们的思维方式,最长匹配嘛,值得一提的是这种情况
printf("%s
",aa a);
替换结果是”2a” “a”,通过空格间隔。C Primer中提到过这种书写方式,这也是字符串跨行的一种有效的写法,但是毕竟很少在实际情况中看到。 另外一种字符串跨行的方式是:
char chstr2[] = "abcabc\
abcabc";
这里需要注意,第二行前面不能有空格或者tab。
PREVIOUS想起一件事情
NEXTC++ Primer 读书笔记