C++中的头文件“pragma hdrstop”是什么意思

C++中的头文件“pragma hdrstop”是什么意思,第1张

分类: 电脑/网络 >>软件 >>老枯 其他软件

解哗含樱析:

#pragma hdrstop表示预编译头文件到此为乱丛止,后面的头文件不进行预编译。可以预编译头文件以加快链接的速度,但如果所有头文件都进行预编译又可能占太多磁盘空间,所以使用这个选项排除一些头文件。

有时单元之间有依赖关系,比如单元A依赖单元B,所以单元B要先于单元A编译。你可以用#pragma startup指定编译优先级,如果使用了#pragma package( *** art_init) ,就会根据优先级的大小先后编译。

1.

#pragma

once

保证头文件只被include一次,等同于

#ifndef

_X_H

#define

_X_H

...

#endif

//_X_H

2.#pragma

comment

原形是#pragma

comment(

"乎信comment-type"

[,

commentstring]

),把comment

recode放入目标文件或可

执行文件。"comment-type"有五种,其中lib比较常用:#pragma

comment(lib,"d3d9x")

在连接时就会把

d3d9x.lib报含到项目中来。其实在IDE中也可以手动的设置把lib文件包含进来。

3.#pragma

warning

可以对编译的warning做一些处理.

比如当把float

转成

int时会有一个warning.看到warning总归不爽,而且有些warning心知肚明,肯定不

会引起什么问题,这时候:

#pragma

warning(disable:4244)

可以把该警告屏蔽掉.#pragma

warning的作用域是本文件,如果是头文件,则会影响到包含它的模块,确保

你的使用不会影响到别人.所以最好及时地恢复warning

#pragma

warning(

push

)

#pragma

warning(

disable

:

4705

)

#pragma

warning(

disable

:

4706

)

//

Some

code

#pragma

warning(

pop

)

也可以

#pragma

warning(

disable

:

4705

)

#pragma

warning(

disable

:

4706

)

//

Some

code

#pragma

warning(

default:

4705

)

#pragma

warning(

default:

4705

)

4.#pragma

pack

c/c++的class,struct,union默认情况下会在字,双字,四字边界对齐.有时候需要按我们的方式进行对齐,

比如让网络包颤顷和更紧蹙些.

#pragma

pack(push,1)

struct

A{

//现在sizeof(A)

等茄盯于5;默认情况下是8;

int

i

char

c

}

#pragma

pack(pop)

使用时跟warning一样,也要注意作用域问题。记得以前有位仁兄在头文件中改了对

齐方式,没有及时地设回去。这种bug很讨厌,会间歇性地莫名其妙地引起程序崩溃,千万要小心。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8178448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存