попробуйте ниже код в - https://onlinegdb.com/H1Sf_PAiI
#include<iostream>
using namespace std;
struct Str
{
char c;
int ch1:56;
double d;
int s;
int ch:32;
}st;
int main()
{
cout<<sizeof st<<endl;
return 0;
}
output
main.cpp:7:10: warning: width of ‘Str::ch1’ exceeds its type
32
Затем я уменьшил битовое поле ch1 до 32 бит. Это сработало ..!
попробуйте ниже код при - https://onlinegdb.com/BkD4YP0oI
#include<iostream>
using namespace std;
struct Str
{
char c;
int ch1:32;
double d;
int s;
int ch:32;
}st;
int main()
{
cout<<sizeof st<<endl;
return 0;
}
вывод
24
Правило 1 и 2 на изображении выше неверно?