Saya sedang menguji penyelarasan kelas dan menemukan perilaku aneh. Saya mengujinya dengan pengaturan kompiler VS2012 pengaturan penyelarasan 4
dan 8
byte tetapi dalam setiap kasus hasilnya sama.
class Alignemnt{
public:
Alignemnt():a(){}
int a;
};
class Alignemnt_1{
public:
int a;
char array[2];
};
class Alignemnt_2{
public:
int a;
char array[2];
int x;
};
std::cout << "Sizeof(Alignemnt) :" <<sizeof(Alignemnt) << std::endl;
std::cout << "Sizeof(Alignemnt_1) :" <<sizeof(Alignemnt_1) << std::endl;
std::cout << "Sizeof(Alignemnt_2) :" <<sizeof(Alignemnt_2) << std::endl;
Setiap kali keluarannya adalah:
Sizeof(Alignemnt) : 4
Sizeof(Alignemnt_1) : 8
Sizeof(Alignemnt_2) : 12
Menurut saya, ukuran Alignemnt_2 harus 16 byte.
struct
daripadaclass
untuk alasan pengujian guna menghemat waktu Anda dengan menghindari pencetakan kata kuncipublic
- person borisbn   schedule 29.01.2015