C语言中 #pragma pack()

发布时间 2023-07-10 18:58:03作者: DoubleLi

#pragma  pack

 

    这条指令主要用作改变编译器的默认对齐方式。

 

pragma pack(show)      //显示当前内存对齐的字节数,编辑器默认8字节对齐
    #pragma pack(n)         //设置编辑器按照n个字节对齐,n可以取值1,2,4,8,16
    #pragma pack(push)      //将当前的对齐字节数压入栈顶,不改变对齐字节数
    #pragma pack(push,n)    //将当前的对齐字节数压入栈顶,并按照n字节对齐
    #pragma pack(pop)       //弹出栈顶对齐字节数,不改变对齐字节数
    #pragma pack(pop,n)     //弹出栈顶并直接丢弃,按照n字节对齐
    *********************************************************************/
     
     
    #pragma pack(1)                             //设置内存按照1个字节对齐
     
    typedef stuct                               //声明结构体
    {
        char           SeriesNumber[16];        //结构体成员
        unsigned byte  minDelta;                //结构体成员
        float          FilterGauss;             //结构体成员
    } Param;                                    //结构体名称为Param
     
    #pagma pack()                               //恢复内存按照8字节对齐