Posted on 2007-08-03 13:04
寶杉 閱讀(281)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
C++
pragma就是為了讓編譯器編譯出的C或C++程序與機(jī)器硬件和操作系統(tǒng)保持完全兼容而定義的宏擴(kuò)展,#pragma是和特定編譯器相關(guān)的。
一、Pragma說明(Directives)
C和C++程序的每次執(zhí)行都支持其所在的主機(jī)或操作系統(tǒng)所具有的一些獨(dú)特的特點(diǎn)。
一些程序,例如,需要精確控制數(shù)據(jù)存放的內(nèi)存區(qū)域或控制某個(gè)函數(shù)接收的參數(shù)。
#pragma指示為編譯器提供了一種在不同機(jī)器和操作系統(tǒng)上編譯以保持C和C++完全兼容的方法。Pragmas是由機(jī)器和相關(guān)的操作系統(tǒng)定義的,通常對(duì)每個(gè)編譯器來說是不同的。
二、語法(Syntax)
#pragma token-string(特征字符串)特征字符串是一連串的字符,就是要給一個(gè)特定編譯器提供說明和編譯意見。
符號(hào)(#)必須是pragma所在那一行的第一個(gè)非空格字符;
#號(hào)和pragma之間可以有任意個(gè)空格符。
在#pragma之后,是可以被編譯器解析的預(yù)處理特征字符。
一般認(rèn)為,#pragma屬于宏擴(kuò)展。
如果編譯器發(fā)現(xiàn)不認(rèn)識(shí)的pragma,會(huì)提出警告,但繼續(xù)編譯下去。
Pragmas可以用在條件聲明上,提供最新的功能性的預(yù)處理程序,或者提供給編譯器定義執(zhí)行的信息。
其格式一般為: #pragma para
其中para為參數(shù),下面來看一些常用的參數(shù)。
alloc_text
comment //注釋
init_seg1
optimize //最優(yōu)化
auto_inline
component //組成部件
inline_depth
pack //包
bss_seg
data_seg
inline_recursion //內(nèi)嵌遞歸
pointers_to_members1
check_stack
function
intrinsic //內(nèi)在的
setlocale
code_seg
hdrstop
message
vtordisp1
const_seg
include_alias
once
warning
參數(shù)詳解
diary files\#pragma 預(yù)處理指令詳解.doc