#pragma命令的作用: 是设定编译器的状态或者是指示编译器完成一些特定的动作.
格式: #pragma 参数
1.#Pragma message(“消息文本”) :在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。
2.#pragma code_seg( ["section-name"[,"section-class"] ] )
: 设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。
3.#pragma once : 在头文件的最开始加入这条指令,保证头文件被编译一次,这命令是编译相关的,在这个系统上能用,在其他的系统上就不一定能用,移植性差;
4.#pragma hdrstop : 表示预编译头文件到此为止,后面的头文件不进行预编译。
5.#pragma resource "*.dfm" : 表示把*.dfm文件中的资源加入工程.
6.#pragma warning(disable:4507 34) : 不显示4507和34号警告信息.
7.#pragma warning(once:4385) : 4385号警告信息仅报告一次;
8.#pragma warning(error:164) : 把164号警告信息作为一个错误。
9.#pragma warning( push ) : 保存所有警告信息的现有的警告状态。
#pragma warning( push, n) : 保存所有警告信息的现有的警告状态,并且把全局警告等级设定为n。
10.#pragma warning( pop ) : 向栈中弹出最后一个警告信息.
11.pragma comment(...) :将一个注释记录放入一个对象文件或可执行文件中.如,添加链接库:#pragma comment(lib, "master.lib")
12.激活或终止该编译程序支持的一些编译功能:
#pragma loop_opt(on) // 激活
#pragma loop_opt(off) // 终止
13.#pragma pack(n) :从这开始对后面的结构成员进行对齐,既如果结构成员1的大小<n则将成员1扩大到n个大小; 如果成员1的大小>n则使用成员1的大小.
#pragma pack() : 就是取消#pragma pack(n)的功能;
14.#pragma auto_inline(off): 让编译器禁止函数内联->只能多没有使用inline关键字的函数起作用!