首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

宏定义能分配内存吗

2014-01-06 
宏定义会分配内存吗?#define STRING abcd#define NUMBER 1第一个,abcd应该是存储在文字常量区?第二个,会

宏定义会分配内存吗?
#define STRING "abcd"
#define NUMBER 1
第一个,abcd应该是存储在文字常量区?
第二个,会分配内存吗?
[解决办法]
宏是在编译期间起作用,还没到运行期间,所以没有内存分配这个说法
[解决办法]
#define STRING "abcd"
#define NUMBER 1

如果没用到 STRING, 那么这个宏定义相当于没定义, 不产生任何运行时的内存分配.

如果用到了, 并且在多个地方用到了, 内存如何分配要看使用场景和编译器了.

cons char* psz  = STRING;
char szbuf[] = STRING;

[解决办法]
1.编译后放在常量数据区
2.不会

热点排行