本文转自:http://blog.csdn.net/hziee_/article/details/1786550

感谢原作者

预编译指令#pragma有很多种用法,我敢保证很多程序员即使是一辈子也不会碰到其中的有些用法,是

的,他们的确很偏僻,我们也没有用他们的需求。所以,本文不会面面俱到,只是把几种常用的几种汇总

了一下。

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很讨厌,会间歇性地莫名其妙地引起程序崩溃,千万要小心。

#pragma 的几种用法相关推荐

  1. PHP header 的7种用法

    这篇文章介绍的内容是关于PHP header()的7种用法 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 PHP header 的7种用法 1. 跳转页面 header('Locat ...

  2. Android Intent的几种用法全面总结

    Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...

  3. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示.  比如 SELECT * FROM [user ...

  4. javamap的用法_Java Map常用的几种用法。

    Java Map常用的几种用法. 通常,Map是由一组键值对组成的数据结构,每个键只能在映射中出现一次.这篇文章总结了有关如何使用Java Map及其实现的类的前9个常见问题解答.为了简单起见,我将在 ...

  5. using 的三种用法

    using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...

  6. C++ operator两种用法【转】

    C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别进行介绍: 1.operator ...

  7. java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  8. static的三种用法,定义静态变量,静态函数,静态代码块!

    static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...

  9. Vue——基本的代码结构和插值表达式、v-cloak||Vue指令之v-text和v-html||v-bind的三种用法||Vue指令之v-on

    Vue的基本代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...

最新文章

  1. vlc生成rtsp流
  2. 【转】HTTP Response Header 的 Content-Disposition
  3. centos7查看内核以及删除旧内核
  4. Python基础教程:return函数的用法
  5. 全球数字经济白皮书——疫情冲击下的复苏新曙光
  6. ACM题目————中位数
  7. 一个有趣的.net程序死锁问题
  8. Scala之flatMap操作
  9. 嵌入式Linux/Android疑难杂症工作笔记
  10. 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
  11. 何钦铭.c语言程序设计,《C语言程序设计》 - 何钦铭
  12. Ubuntu 开机未登录用户前自动连接wifi
  13. 公司企业邮箱账号格式怎么填?
  14. Android 报错 : FATAL EXCEPTION:main 解决方法
  15. UE4资源————Pak
  16. 针对正方教务开发大学App(查成绩,课表,一键评教,图书馆,正方系统)
  17. Qt之Windows下禁用中文输入法
  18. IOS 企业级苹果开发者账号申请流程
  19. 从0开始搭建一个疫情地图小程序——小程序篇
  20. C/C++基于朋友圈的商品推荐系统

热门文章

  1. 数据库、数据库系统、数据库管理系统
  2. Codeforces Round #460 (Div. 2): D. Substring(有向图)
  3. HDU 5701:中位数计数
  4. Exp6 信息收集与漏洞扫描
  5. 子类调用父类的构造函数几种情况
  6. 20145228 《信息安全系统设计基础》第九周学习总结 (2)
  7. js面向对象--理解闭包
  8. 学习c++一点一滴----读取注册表
  9. 背景图片,颜色变化脚本
  10. [转载] [转载] python set集合如何有序输出_python set集合的用法