VC++6.0 SETTTING几问

devzhao 2003-07-21 12:56:10
vc+=6.0
菜单project---setting
c/c++属性页:
1、category:code generation
有一个struct member alignment是做什么用的?选4byte和8byte会有什么区别?
2、category:precompile header
该设置是做什么用的?.pch文件是什么文件?
...全文
44 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfc168 2003-07-21
  • 打赏
  • 举报
回复
而且设置不同的对齐方式,sizeof(STRUCT)返回的结果也不一样,你可以试一下
mfc168 2003-07-21
  • 打赏
  • 举报
回复
按4byte对齐是8byte
WINDOWS内存是按照‘页’或者‘块’ 来进行管理的,编译后,形成PE文件中,含有数据块,如果设置了对齐方式,程序读该数据块就以你所定的结构块大小来读。
devzhao 2003-07-21
  • 打赏
  • 举报
回复
结构成员对齐方式是使结构的成员对齐,还是使结构体对齐?
如:
struct
{
long a; //4byte
short b; //2byte
char c; //1byte
}
按2byte对齐是8byte
按4byte对齐是8byte还是12byte

另:对齐后,有什么好处呢?
醉马不肖 2003-07-21
  • 打赏
  • 举报
回复
ok
tosa 2003-07-21
  • 打赏
  • 举报
回复
1. 结构成员对齐方式。
如果设为2字节,表示结构的内存大小总是2的倍数;
如果设为4字节,表示结构的内存大小总是4的倍数;
如果设为8字节,表示结构的内存大小总是8的倍数。

struct
{
long a; // 4字节
char b; // 1字节
};
如果为2,则会自动扩充到6字节
如果为4,则会自动扩充到8字节
如果为8,也会自动扩充到8字节

2. 预编译头文件。
用于加快编译速度。编译器首先编译预编译头所包含的所有内容,结果存到一个pch中。编译其他文件时,如果使用预编译头,则预编译头的内容不重新编译,直接使用pch中的结果。当一个project中包含大量的cpp时可以极快地提高编译速度,因为预编译头文件中的内容无论被多少个cpp所包含,都只需编译一次。


16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧