【C++】 struct结构自动对齐的问题

#pragma pack (push)

#pragma pack (1)

struct XXXX
{
};

#pragma pack (pop)

这样写就不会自动对齐了。

在写MFC下的winpcap捕arp包,因为这个自动对齐的问题头疼了好久,总算找到方法了。

下次在写的时候,干脆全用u_char来写,可能可以避免自动对齐的现象。:)

时间: 2024-10-29 00:14:57

【C++】 struct结构自动对齐的问题的相关文章

P Invoke struct结构

一.获取Struct CHCNetSDK.NET_DVR_PTZPOS pos = new CameraTest.CHCNetSDK.NET_DVR_PTZPOS(); int size = Marshal.SizeOf(typeof(CHCNetSDK.NET_DVR_PTZPOS)); IntPtr ptr = Marshal.AllocHGlobal(size);// 申请内存 uint bytesReturnd = 0; try { if (!CHCNetSDK.NET_DVR_GetD

(C)struct结构体指针

结构体指针 指针结构与指针的关系亦有两重:其一是在定义结构时,将指针作为结构中的一个成员:其二是指向结构的指针(称为结构指针). 前者同一般的结构成员一样可直接进行访问,后者是本节讨论的重点. 结构指针说明的一般形式是: struct (结构类型名称) * (结构指针变量名);例如:struct date * pdate, today;说明了两个变量,一个是指向结构date的结构指针pdate,today是一个date结构变量. 语句: struct date{ int year; int mo

struct结构体基础知识

/* ============================================================================ Name : TestStruct.c Author : lf Version : Copyright : Your copyright notice Description : struct结构体基础知识 ==================================================================

C# struct 结构

结构是使用 struct 关键字定义的,与类相似,都表示可以包含数据成员和函数成员的数据结构. 一般情况下,我们很少使用结构,而且很多人也并不建议使用结构,但作为.NET Framework 一般型別系统中的一个基本架构,还是有必要了解一下的. 结构的特征: 结构是一种值类型,并且不需要堆分配. 结构的实例化可以不使用 new 运算符. 在结构声明中,除非字段被声明为 const 或 static,否则无法初始化. 结构类型永远不是抽象的,并且始终是隐式密封的,因此在结构声明中不允许使用abst

go struct结构体

struct结构体 用来自定义复杂数据结构 struct里面可以包含多个字段(属性) struct类型可以定义方法,注意和函数的区分 struct类型是值类型 struct类型可以嵌套 Go语言没有class类型,只有struct类型 1.struct 声明 type 标识符 struct { field1 type field2 type } 样例: type Student struct { Name string Age int Score int } 2.struct 中字段访问:和其他

struct结构会增加程序的开销

    struct结构一方面能够加强对变量的管理,增加程序的可读性,但是另一方面,结构体也会加大程序的开销.     看下面一段代码: struct TEST_S { int a; int b; float c; }; int _tmain(int argc, _TCHAR* argv[]) { TEST_S ts; int a; int b; int c; ts.a = 100; ts.b = 200; ts.c = 300.f; a = 100; b = 200; c = 300.f; r

struct结构体自动化构想性能监控

TABLE_NAME不查询其他数据库中的表.外为了以防万一,可以在SQL语句中写表时加上数据库比如SELECT column_name ,TABLE_NAME,TABLE通过查询information_schema库中的tables DeviceType | tinyint(3) unsigned | YES | | NULL | | | VideoInputNum | tinyint(3) unsigned | YES | | NULL | | | VideoCodecCapacity如果结构

GO 学习笔记(四)struct 结构、slice

1.struct结构,字段集合. 2.字段使用点号来访问. 3.字段可以通过指针来访问. func main() { row1 := []User{ User{"man1", 22, true}, User{"man2", 23, true}, } fmt.Println(row1) // [{man1 22 true} {man2 23 true}] user := User{"man", 18, true} fmt.Println(user)

struct 结构体以及 typedef struct

1.C语言中,结构体的声明如下:首先关键字struct表示接下来是一个结构,后面是一个可选的标记,用来引用该结构的快速标记. struct book { char title[MAXN]; char author[MAXM]; float value; }; 上述结构声明,是"结构设计"的意思.它告诉编译器如何表示数据,而没有让计算机为数据分配空间. 然后声明或定义一个结构体变量时,如下: struct book library; 其中struct 不能省. 综合上述的两个,可以合二为