#pragma的一些用法】的更多相关文章

在看公司公共库的头文件中发现了:#pragma GCC system_header一行,以前没有见过这种用法,在网上查了一下,解释如下: 从#pragma GCC system_header直到文件结束之间的代码会被编译器视为系统头文件之中的代码.系统头文件中的代码往往不能完全遵循C标准, 所以头文件之中的警告信息往往不显示.(除非用 #warning显式指明). 可以查看gcc参考手册:http://gcc.gnu.org/onlinedocs/cpp/System-Headers.html#…
一个很重要的参数#pragma pack(n) 数据边界对齐方式:以如下结构为例: struct {                    char a;                    WORD b;                    DWORD c;                    char d;                   }在Windows默认结构大小: sizeof(struct) = 4+4+4+4=16;与#pragma pack(4)一样若设为 #prag…
简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick { //... } OK,那么如何查找呢,点击代码编辑器上面的导航栏即可: 接着我修改一下代码: #pragma mark- 播放节拍器 猛一看没发现区别是吧?实际上多了一个横线  #pragma mark “-” 播放节拍器 这个短横线(减号)有什么作用呢,再次点击导航栏就可以看到. 加上-后会显示一条分割线…
简单的来说就是为了方便查找和导航代码用的.   下面举例如何快速的定位到我已经标识过的代码.     #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick{ //... } OK,那么如何查找呢,点击代码编辑器上面的导航栏即可:   接着我修改一下代码: #pragma mark - 播放节拍器   猛一看没发现区别是吧?实际上多了一个横线    #pragma mark “-” 播放节拍器   这个短横线(减号)有什么作用呢,再次点击导航栏就可以看到…
1.#pragma message message 参数:Message参数能够在编译信息输出窗口输出相应的信息,这对于源代码的信息控制特别重要,其使用方法为: #pragma message("消息文本") 当我们程序中定义了许多宏来控制源代码版本的时候,我们自己都有可能会忘记有没有正确设置这些红,此时我们可以使用这条指令在编译的时候就进行检查,假设我们希望判断自己有没有在源代码的什么地方定义了X86这个宏,可以使用下面的方法: #ifdef X86 #pragma message(…
Mattt Thompson撰写. Zihan Xu翻译. 发布于2012年10月1日 #pragma 声明是彰显 Objective-C 工艺的标志之一.虽然 #pragma 最初的目的是为了使得源代码在不同的编译器下兼容的,但精明的Xcode编码器将 #pragma 使用到了极致. 在现在的背景下,#pragma 避开了注释和代码之间的界限.作为预处理指令,#pragma 在编译时进行计算.但它并不像如 #ifdef...#endif 之类的宏,#pragma 的使用方式不会改变你的应用运行…
#pragma简介 #pragma用于指示编译器完成一些特定的动作 #pragma所定义的很多指示字是编译器特有的 #pragma在不同的编译器间是不可移植的 预处理器将忽略它不认识的#pragma指令 不同的编译器可能以不同的方式解释同一条#pragma指令 一般用法: #pragma parameter 注:不同的parameter参数语法和意义各不相同 #pragma message message参数在大多数的编译器中都有相似的实现 message参数在编译时输出消息到编译器输出窗口中…
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/48879093 1 #和##的作用和用法 C/C++ 的宏中,#的功能是将其后面的宏参数进行字符串化操作,简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号.##连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串联接起来,从而形成一个新的子串.但它不可以是第一个或者最后一个子串. #include <iostrea…
创建数据段 //创建数据段 #pragma data_seg("fangfangdata") ; #pragma data_seg() 与数据段连接,实现数据通信,分享 //实现数据通信,分享 #pragma comment(linker,"/SECTION:cgwdata,RWS") 测试,用数据段使程序只能打开一次 ) { printf("程序只能启动一个"); MessageBoxA(, ); return; } my_data_seg++…
#pragma宏命令主要是改变编译器的编译行为,其他的参数网上资料比较多,我只想简单说下#pragma unroll的用法,因为网上的资料比较少,而且说的比较笼统,请看下面的一段代码 int main() { int a[100]; #pragma unroll 4 for(int i=0;i<100;i++) { a[i]=i; } return 0; } 循环是一个程序运行时间的主要展现形式,通过使用#pragma unroll命令,编译器在进行编译时,遇到该命令就会对循环进行展开,比如对一…