软件注册站
热情软件屋

 
如何修改Struct Member Alignment
编号: QA002627    
建立日期: 2000年2月26日 最后修改日期: 2004年1月1日
所属类别: C/C++ - 其他方面
   
    编程工具: Microsoft Visual C++
    操作系统: Windows95/98/NT
    Default "Struct Member Alignment" is 8 bytes, why? 为什么VC的“Struct Member Alignment”的缺省值是8字节,难道这时代码执行效率最高吗?是否编译最省事呢?4或1字节可以吗? 另有一问:怎样在一个实现文件或程序的某一部分用诸如#pragma之类的语句临时修改项目的Struct Member Alignment? 先谢了。
    
    (刘映虹)
   
    缺省值是8字节主要是为了速度快,因为如果内存地址是8的倍数,CPU存取的速度最快(这同CPU取数操作有关,详细的介绍可以参考一些计算机原理方面的书)。这样做可能会浪费一些内存。当然这样的设置会在读写一些别的应用程序生成的数据文件或交换数据时带来不便。
    要修改整个工程中的对齐设置,可以在Settings对话框中选择C/C++标签,然后选择Code Generation分类,在其中修改。
    也可以使用#pragma pack在程序中改变某部分的对齐设置。你可以参考帮助中的有关说明。
    
    raul的意见:
    这是我编程中的一点经验。
    #pragma pack(1)//改变结构体的成员对齐设置
    
     typedef struct _DATA{
     int iM1;
     int iM2;
    
    }
    
    #pragma pack(8)//恢复以前的设置
     .
     .
     .
    struct{
    };

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio