#pragma 的几种用法
本文转自: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 的几种用法相关推荐
- PHP header 的7种用法
这篇文章介绍的内容是关于PHP header()的7种用法 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 PHP header 的7种用法 1. 跳转页面 header('Locat ...
- Android Intent的几种用法全面总结
Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user ...
- javamap的用法_Java Map常用的几种用法。
Java Map常用的几种用法. 通常,Map是由一组键值对组成的数据结构,每个键只能在映射中出现一次.这篇文章总结了有关如何使用Java Map及其实现的类的前9个常见问题解答.为了简单起见,我将在 ...
- using 的三种用法
using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...
- C++ operator两种用法【转】
C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别进行介绍: 1.operator ...
- java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...
java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...
- static的三种用法,定义静态变量,静态函数,静态代码块!
static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...
- Vue——基本的代码结构和插值表达式、v-cloak||Vue指令之v-text和v-html||v-bind的三种用法||Vue指令之v-on
Vue的基本代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...
最新文章
- vlc生成rtsp流
- 【转】HTTP Response Header 的 Content-Disposition
- centos7查看内核以及删除旧内核
- Python基础教程:return函数的用法
- 全球数字经济白皮书——疫情冲击下的复苏新曙光
- ACM题目————中位数
- 一个有趣的.net程序死锁问题
- Scala之flatMap操作
- 嵌入式Linux/Android疑难杂症工作笔记
- 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
- 何钦铭.c语言程序设计,《C语言程序设计》 - 何钦铭
- Ubuntu 开机未登录用户前自动连接wifi
- 公司企业邮箱账号格式怎么填?
- Android 报错 : FATAL EXCEPTION:main 解决方法
- UE4资源————Pak
- 针对正方教务开发大学App(查成绩,课表,一键评教,图书馆,正方系统)
- Qt之Windows下禁用中文输入法
- IOS 企业级苹果开发者账号申请流程
- 从0开始搭建一个疫情地图小程序——小程序篇
- C/C++基于朋友圈的商品推荐系统
热门文章
- 数据库、数据库系统、数据库管理系统
- Codeforces Round #460 (Div. 2): D. Substring(有向图)
- HDU 5701:中位数计数
- Exp6 信息收集与漏洞扫描
- 子类调用父类的构造函数几种情况
- 20145228 《信息安全系统设计基础》第九周学习总结 (2)
- js面向对象--理解闭包
- 学习c++一点一滴----读取注册表
- 背景图片,颜色变化脚本
- [转载] [转载] python set集合如何有序输出_python set集合的用法