对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.
谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.
要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:
假设我有这样的POD类型:
struct A {
char a;
int b;
};
Run Code Online (Sandbox Code Playgroud)
在我的系统上,sizeof(A) == 8即使sizeof(char) == 1和sizeof(b) == 4.这意味着数据结构有3个未使用的字节.
现在假设我们这样做
A x = ...;
A y =x;
Run Code Online (Sandbox Code Playgroud)
题:
难道是保证所有8个字节的x和y将是相同的,即使是那些3分未使用的?
同样,如果我将某些A对象的底层字节转移到另一个不理解其含义或结构的程序,并将它们视为一个8字节的数组,那么其他程序可以安全地比较两个As的相等吗?
注意:在使用gcc 7的实验中,似乎会复制这些字节.我想知道这是否有保证.