Ví dụ, nếu bạn có một chương trìnhChuẩn C++ có đảm bảo rằng các chuỗi ký tự chuỗi được lưu trữ trong chương trình nhị phân không được pha trộn?
int main()
{
const char* str = "1111111111111111111111111111111111111111111";
printf("%s", str);
return 0;
}
và bạn biên dịch nó, nếu bạn tìm kiếm nhị phân tạo ra cho "1111111111111111111111111111111111111111111", (bỏ qua các vấn đề như mã hóa), bạn có đảm bảo để tìm thấy nó, hoặc là nó cho phép trình biên dịch tạo mã, ví dụ, phân bổ bộ nhớ heap, điền nó với '1's bằng cách sử dụng một vòng lặp, và sau đó sửa tất cả các tham chiếu đến chuỗi ký tự đó để trỏ tới bộ nhớ heap? (và sau đó đảm bảo rằng nó được deallocated vào đúng thời điểm, blah blah)
Tôi nghi ngờ có bất kỳ thực hiện thực sự làm điều này ... nhưng nó sẽ là tiêu chuẩn phù hợp nếu nó đã làm?
Không có gì đảm bảo điều đó. Điều duy nhất tiêu chuẩn (Tôi đang xem bản thảo năm 2005 vì không ai không có tiền cho sách giáo khoa ...) là nội dung của các chuỗi ký tự (chúng hẹp hoặc rộng), loại của chúng, thời gian lưu trữ của chúng , thoát chuỗi và nối chuỗi chữ liền kề. Xem [2.13.4 tại đây] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf). –