pragma的作用
来源:互联网 发布:什么是c语言标准库函数 编辑:程序博客网 时间:2024/04/18 11:12
不同的主机和操作系统都有其特点。为了利用好这些特点,c和c++的编译器必须能够针对不同的特性进行处理。比方说,有些程序需要准确地对内存进行管理(如应当将数据存放到哪里)或者需要指定函数接受参数的方式。#pragma指示器便用于此处!通过#pragma,我们的c和c++程序即可以保证兼容性也可以利用到低层系统的特色!
语法规则: #pragma token-string
其中token-string给出了特定的编译指令和参数。
利用条件申明,pragma可以提供预处理功能和对编译器进行定制。c和c++可以识别以下pragma:alloc_text comment init_seg1 optimize auto_inline component inline_depth pack bss_seg data_seg inline_recursion pointers_to_members1 check_stack function intrinsic setlocale code_seg hdrstop message vtordisp1 const_seg include_alias once warning
#pragma comment( comment-type [, commentstring] )将注释放置到生成的目标文件或者可执行文件中去。commet-type一共有5种类型。可选的参数commenstring为这5种类型中的个别类型提供额外的参数。以下我们就5种类型进行分析与介绍:
compiler:将编译器名字和版本号放如目标文件。
exestr:将commentstring放到目标文件里面。
lib:将查找库的信息放如目标文件里面。此时,必须使用commentstring参数,用于记录lib的名字,最好还包括路径。
#pragma comment( lib, "emapi" )首先在当前目录底下查找emapi.lib,然后在lib环境变量的路径里面寻找
linker:将linker option放入目标文件里面。通过注释类型确定linker的选项,从而避免在Setting对话框里面进行设置。比如:
#pragma comment(linker, "/include:__mySymbol")
user:将一般的注释放入到目标文件里面。
#pragma optimize( "[optimization-list]", {on | off} ):在函数一级对进行优化。该语句必须出现在函数外面,并且只会对该声明后的第一个函数有作用。on或者off确定是否起作用。
Parameter(s) | Type of optimization |
a | Assume no aliasing. |
g | Enable global optimizations. |
p | Improve floating-point consistency. |
s or t | Specify short or fast sequences of machine code. |
w | Assume no aliasing across function calls. |
y | Generate frame pointers on the program stack. |
#pragma function( function1 [, function2, ...] ) #pragma intrinsic( function1 [, function2, ...] )
以上两个声明确定了所选函数的调用类型。如果有一函数名出现在function的参数里面,则说明以一般函数的形式调用。如果出现在了intrinsic里面则编译器在编译的时候将函数代码转化了inline代码。
#pragma data_seg( ["section-name"[, "section-class"] ] ):为数据指定默认的存储区。如:
#pragma data_seg( "MY_DATA" )。这句声明将使得在#pramga后申明的数据将在名为MY_DATA存储区里面进行分配。
先介绍到此,告一段落。以后遇到了问题,再来添加!!!
- pragma的作用
- #pragma 的作用
- #pragma的作用
- pragma message的作用
- #pragma 的作用
- #pragma pack的作用
- #pragma的作用
- #pragma的作用
- #pragma mark 的作用
- #pragma 的作用
- pragma message的作用
- #pragma region的作用
- pragma INITCODE的作用
- #pragma comment 的作用
- #pragma pack的作用
- #pragma pack的作用
- sqlite PRAGMA reverse_unordered_selects 的作用
- #pragma pack(n) 的作用
- 初识Java内部类
- Windows Media 元文件简介
- Google 不為人知的特殊用法
- Java内部类
- Dual表小议
- pragma的作用
- 1个半月的计划
- 学习J2SE过程中的30个基本概念
- UDP穿透NAT的原理与实现(附源代码)
- MercuryInteractive WinRunner v7.60.03
- DLL中调用约定和名称修饰
- 浅出Java Socket编程
- 琐记
- GPRS常见问题