Nếu điều đó quan trọng, bạn có thể làm điều gì đó không an toàn và không di động.
Có, cuộc gọi memset
sẽ đặt bất kỳ bit đệm (hoặc byte) nào thành 0 - nhưng không đảm bảo bằng ngôn ngữ đặt đối tượng float
thành tất cả bit-0 sẽ đặt thành 0.0. Điều tương tự cũng áp dụng cho con trỏ: tất cả bit-zero không được bảo đảm là con trỏ rỗng. (Trong cả hai trường hợp, điều này đúng với hầu hết các lần triển khai.)
Chuẩn ISO C90 hoặc C99 ban đầu thậm chí không đảm bảo rằng tất cả bit-zero là biểu diễn hợp lệ 0 cho các loại nguyên; một trong các Corrigenda sau C99 đã thêm một bảo đảm như vậy (chỉ dành cho các loại số nguyên).
Đối với tính di động, nếu bạn muốn thứ gì đó bằng không, hãy đặt rõ ràng. Bạn cũng có thể tận dụng lợi thế của việc khởi tạo giá trị bằng không cho các đối tượng tĩnh và cho các thành viên bị bỏ qua trong initializers.
Nitpick thuật ngữ: "bit đệm" là một phần của biểu diễn các loại số nguyên (và thường không có loại số nguyên nào trong số đó). Đệm giữa các thành viên cấu trúc là đệm byte.
Nguồn
2011-12-18 05:31:37
Bạn có thể hiển thị cho chúng tôi mẫu mã không? – Mysticial
thêm mẫu mã –
Tôi không hiểu điều gì khiến bạn nghi ngờ điều đó. –