C++

struct 结构体大小

结构体内可以有多种类型数据, 默认按照成员声明顺序, 在内存中按照默认对齐方式存储; 也可以使用 "#pragma pack(N)" 指定对齐字节数 默认对齐方式 结构体第一个成员的地址和结构体地址相同 对齐时, 成员会相对结构体地址偏移, 产生偏移量, 这个偏移量要是成员大小的整数倍 结构体的总大小, 需要是长度最大的成员的整数倍; 对齐会产生填充字节 struct PackS{ char c; double d; int i; }; PackS packS = {'A', 3, 3}; cout << "char 大小 = " << sizeo ...

QT 信号槽

宏: SIGNAL, SLOT 关键字: signals, slots, emit SLOT 方法是阻塞的 类的定义中需要包含宏Q_OBJECT 要想一个方法放入 SLOT(XXX) , xxx 一定要在声明时指定 signals 修饰; 使用: QObject::connect(sender, SIGNAL(signal), receiver, SLOT(slot)); 绑定的 signal 和 slot 方法参数要类型一致;或自动把signal比slot多出的参数省略; disconnect 断开 自定义信号/槽 注意点 自定义类继承 QObject 声明宏 Q_OBJECT 函数指针不能作为信号或槽的参数。 信号与槽不能有缺省参数。 signals 的注意点 表示信号 signals 修饰的方法不能 ...

位域

结构: 类型 变量名:位长度; 如: int i:3; 使用变量名直接控制一些bit; 结构体占用空间最小为变量类型的固有长度 //两个int占用一个int空间 struct intS{ int i1:3; int i2:5; } ; intS p1; cout << sizeof(p1)<< endl;//4 1234567 //两个int占用一个int空间    struct intS{        int i1:3;       ...