- 主题:struct align padding字节的值是固定的么
比如我有一个struct
struct A{
int i;
char c;
}
A a ={1,2};
A b ={1,2};
memcmp(&a,&b)是不是能确保等于0?
应该是随机的吧?
--
FROM 119.103.28.*
VS2019的是随机的(根本就没初始化padding bytes)。最终答案要查c++的pdf。
随便搜了一下,static、thread-local的, 和auto的不一样。
ISO_IEC_14882__2020-12.pdf 的 "9.4 Initializers"这一节(197页开始)讲了各种初始化,zero-initialize/default-initialize/value-initialize等。
A a = { 1,2 };
00674407 mov dword ptr [a],1
0067440E mov byte ptr [ebp-8],2
A b = { 1,2 };
00674412 mov dword ptr [b],1
00674419 mov byte ptr [ebp-18h],2
return 0;
0067441D xor eax,eax
--
修改:z16166 FROM 123.115.133.*
FROM 123.115.133.*
主要看整块内存怎么初始化,应该不会对padding部分专门初始化
--
FROM 27.186.196.*
我有时在这个位置放加密信息。
【 在 libgcc 的大作中提到: 】
: 比如我有一个struct
: struct A{
: int i;
: ...................
--
FROM 221.221.54.*
先memset 一下再赋值应该就可以了吧
【 在 libgcc 的大作中提到: 】
: 比如我有一个struct
: struct A{
: int i;
: ....................
- 来自「最水木 for iPhone Xr」
--
FROM 114.254.2.*