Aracılığıyla paylaş


Pragma yönergeleri ve anahtar sözcük __Pragma

Pragma yönergeleri veya işletim-makineye derleyicisi özelliklerini belirtin. __pragma Microsoft derleyici belirli anahtar sözcük yapmanıza olanak makro tanımları içinde kod pragma yönergeleri.

#pragma token-string
__pragma(token-string)

Notlar

c ve C++ her uygulama, ana makine veya işletim sistemi için benzersiz bazı özelliklerini destekler. Bazı programlar, örneğin, verilerin nereye koyduğunuzu bellek alanları üzerinden veya belirli parametreleri alma işlevlerini biçimini denetlemek için tam denetim dikkatli gerekir. #pragma Yönergeleri her derleyici c ve C++ dili ile genel uyumluluk koruyarak makine ve işletim sistemine özgü özellikleri sunmak bir yol sunar.

Formunda bilgi makine veya işletim sistemine özgü tanım ve her derleyici için genellikle farklı. Formunda bilgi koşullu deyimler Önişlemci yeni işlevsellik sağlamak ya da derleyici uygulama tanımlı bilgiler sağlamak için kullanılır.

token-string Derleyici belirli yönerge ve bağımsız veren karakterler varsa dizisidir. Sayı işareti (#); pragma içeren satırdaki ilk boşluk olmayan karakter olmalıdır Beyaz boşluk karakterleri sayı işareti ve sözcük "pragma" ayırabilirsiniz. Aşağıdaki #pragma, çevirici belirteçleri önişleme olarak ayrıştırmak herhangi bir metni yazın. Bağımsız değişken #pragma makro genişleme tabi olur.

Derleyici tarafından tanınmayan bir pragma bulursa, bir uyarı verir ve derleme devam eder.

Microsoft c ve C++ derleyiciler aşağıdaki formunda bilgi tanı:

alloc_text

auto_inline

bss_seg

check_stack

code_seg

Yorum

bileşen

conform1

const_seg

data_seg

kullanım dışı

detect_mismatch

fenv_access

float_control

fp_contract

işlevi

hdrstop

include_alias

init_seg1

inline_depth

inline_recursion

içsel

loop1

make_public

yönetilen

ileti

omp

bir kez

en iyi duruma getirme

Paketi

pointers_to_members1

pop_macro

push_macro

region, endregion

runtime_checks

Bölüm

setlocale

strict_gs_check

yönetilemeyen

vtordisp1

uyarı

1. Yalnızca C++ Derleyici tarafından desteklenir.

Formunda bilgi ve derleyici seçenekleri

Bazı formunda bilgi derleyici seçenekleri ile aynı işlevselliği sağlar. Kaynak kodunda bir pragma karşılaşıldığında, derleyici seçeneği ile belirtilen davranışı geçersiz kılar. Örneğin, belirttiğiniz /Zp8, bu kod ile belirli bölümler için derleyici ayarı geçersiz kılmak pack:

cl /Zp8 ...

<file> - packing is 8
// ...
#pragma pack(push, 1) - packing is now 1
// ...
#pragma pack(pop) - packing is 8
</file>

Anahtar sözcük __pragma()

Microsoft belirli

Derleyici de destekler __pragma aynı işlevselliğe sahip anahtar sözcük olarak #pragma yönergesi, ancak makro tanımında kullanılan satırla hizalı olabilir. #pragma Yönergesi derleyici numara işareti karakteri ('#') yönergesi olarak yorumladığından makro tanımında kullanılamaz stringizing işleci (#).

Aşağıdaki kod örneği göstermektedir nasıl __pragma anahtar sözcüğü, bir makroda kullanılabilir. Bu kodu acdual örnek olarak "Derleyici com Destek örnekleri" mfcdual.h başlığından alınmıştır:

#define CATCH_ALL_DUAL \
CATCH(COleException, e) \
{ \
_hr = e->m_sc; \
} \
AND_CATCH_ALL(e) \
{ \
__pragma(warning(push)) \
__pragma(warning(disable:6246)) /*disable _ctlState prefast warning*/ \
AFX_MANAGE_STATE(pThis->m_pModuleState); \
__pragma(warning(pop)) \
_hr = DualHandleException(_riidSource, e); \
} \
END_CATCH_ALL \
return _hr; \

Microsoft özel bitiş

Ayrıca bkz.

Başvuru

C formunda bilgi

C++ anahtar sözcükler

Diğer Kaynaklar

C/C++ Önişlemci başvurusu