C/C++的define和char
呜呜呜,C语言白学了.jpg
今天看C4P(C++ Primer Plus)才发现两个东西:
define
不是全文替换,而是单词替换;
假设有如下代码段:
#include ...
#define test "sss"
...
char s[] = test;
float tested = 1;
printf("%s test\n", s);
...
输出是sss test
而不是sss "sss"
。(C++支持连续字符串自动拼接)
(如果要验证define
会不会替换变量名的话,得要至少两个文件才行)
- C语言的字符常量是按照
int
大小(通常是4Bytes)存储的。C++早期也是,后来才改成了和char
一致的大小(按int
存储的话会导致cout
以数字形式输出字符常量的ASCII码)。