Posted on 2007-08-03 13:04
寶杉 閱讀(277)
評論(0) 編輯 收藏 引用 所屬分類:
C++
pragma就是為了讓編譯器編譯出的C或C++程序與機器硬件和操作系統保持完全兼容而定義的宏擴展,#pragma是和特定編譯器相關的。
一、Pragma說明(Directives)
C和C++程序的每次執行都支持其所在的主機或操作系統所具有的一些獨特的特點。
一些程序,例如,需要精確控制數據存放的內存區域或控制某個函數接收的參數。
#pragma指示為編譯器提供了一種在不同機器和操作系統上編譯以保持C和C++完全兼容的方法。Pragmas是由機器和相關的操作系統定義的,通常對每個編譯器來說是不同的。
二、語法(Syntax)
#pragma token-string(特征字符串)特征字符串是一連串的字符,就是要給一個特定編譯器提供說明和編譯意見。
符號(#)必須是pragma所在那一行的第一個非空格字符;
#號和pragma之間可以有任意個空格符。
在#pragma之后,是可以被編譯器解析的預處理特征字符。
一般認為,#pragma屬于宏擴展。
如果編譯器發現不認識的pragma,會提出警告,但繼續編譯下去。
Pragmas可以用在條件聲明上,提供最新的功能性的預處理程序,或者提供給編譯器定義執行的信息。
其格式一般為: #pragma para
其中para為參數,下面來看一些常用的參數。
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
參數詳解
diary files\#pragma 預處理指令詳解.doc