【发布时间】:2012-02-08 21:40:20
【问题描述】:
假设你在很多地方定义了一个字符串"example"
// module1.h
char *x = "example";
// module2.h
char *a[] = { "text", "example" };
// module3.c
printf("example");
//etc.
这些数据会被复制还是编译器只会引用它一次?
【问题讨论】:
-
取决于编译器/链接器和选项。我相信整个程序优化和智能链接器会合并重复但不记得参考资料。
标签: c string optimization gcc