#pragma 的几种用法
来源:互联网 发布:公共数据平台建设方案 编辑:程序博客网 时间:2024/06/08 09:15
预编译指令#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很讨厌,会间歇性地莫名其妙地引起程序崩溃,千万要小心。
http://blog.csdn.net/hziee_/archive/2007/09/15/1786550.aspx
- #pragma 的几种用法
- #pragma 的几种用法
- Pragma的几种常用用法
- #pragma的几种常见用法 你会使用几个?
- #pragma 的用法
- #pragma的一般用法
- #pragma warning 的用法
- #pragma的用法
- #pragma的用法
- #pragma的用法
- pragma comment的用法
- #pragma的用法
- #pragma的用法
- PRAGMA EXCEPTION_INIT的用法
- #pragma的用法
- #pragma 的用法
- #pragma once 的用法
- pragma的用法
- mybatis直接执行sql语句
- 各种网页的宽度
- 在PL/SQL DEVELOPER里输出信息
- 读取一组设备,遇到异常不会中断执行
- 工信部颁发“免死金牌” 抢票软件继续存活
- #pragma 的几种用法
- 基于FT5x06嵌入式Linux电容触摸屏驱动
- Linux的五个查找命令
- C++加密库 Crypto++
- 数据访问与ADO.NET
- ps cmd/shell
- 练习使用 socket 发送简单的 HTTP GET 请求
- VirtualBox error: Failed to load VMMR0.r0 (VERR_SUPLIB_WORLD_WRITABLE)
- SQL Server游标的使用【转】