宏定义会分配内存吗?
#define STRING "abcd"
#define NUMBER 1
第一个,abcd应该是存储在文字常量区?
第二个,会分配内存吗?
[解决办法]
宏是在编译期间起作用,还没到运行期间,所以没有内存分配这个说法
[解决办法]
#define STRING "abcd"
#define NUMBER 1
如果没用到 STRING, 那么这个宏定义相当于没定义, 不产生任何运行时的内存分配.
如果用到了, 并且在多个地方用到了, 内存如何分配要看使用场景和编译器了.
cons char* psz = STRING;
char szbuf[] = STRING;
[解决办法]
1.编译后放在常量数据区
2.不会