简介
- #pragma用于指示编译器完成一些特定的动作
- #pragma所定义的很多指示字是编译器特有的
- #pragma在不同的编译器间是不可移植的
- 预处理器将忽略它不认识的#pragma指令
- 不同编译器可能以不同的方式解释同一条#pragma指令;
用法
#pragma parameter
不同的parameter参数语法和意义各不相同
parameter实例
- message参数在编译时输出消息到编译输出窗口中
- message用于条件编译中可提示代码的版本信息
实例
#if defined(Android20)
#pragma message("Compile Android SDK 2.0...")
#endif
- 与#error和#warning不同,#pragma message仅仅代表一条编译消息,不代表程序错误
- #pragma once用于保证头文件只被编译一次
- 编译器相关,不一定支持
- #pragma pack用于指定内存对齐方式
- 内存对齐:不同类型的数据在内存中按照一定的规则排列,而不一定是顺序的一个接一个的排列
箭头所指处取其内部长度最大的数据成员作为其大小,这里的大小仅仅是判断对齐参数时有效,而真正的大小依然是整个结构体所占的大小