thể trùng lặp:
C/C++: Optimization of pointers to string constantsTham chiếu chuỗi có trùng lặp không?
Giả sử bạn có một chuỗi "example"
quy định tại rất nhiều nơi
// module1.h
char *x = "example";
// module2.h
char *a[] = { "text", "example" };
// module3.c
printf("example");
//etc.
sẽ dữ liệu này sẽ được nhân đôi hoặc sẽ làm cho trình biên dịch chỉ có một tham chiếu đến nó?
Phụ thuộc vào trình biên dịch/liên kết và các tùy chọn. Tôi tin rằng tối ưu hóa toàn bộ chương trình và một trình liên kết thông minh sẽ kết hợp các bản sao nhưng không nhớ tài liệu tham khảo. – JimR