Ön işlemci dil bilgisi özeti (C/C++)
Bu makalede C ve C++ ön işlemcisinin resmi dil bilgisi açıklanmaktadır. Ön işleme yönergeleri ve işleçlerinin söz dizimini kapsar. Daha fazla bilgi için bkz . Önişlemci ve Pragma yönergeleri ve __pragma
ve _Pragma
anahtar sözcükleri.
Dil bilgisi özeti tanımları
Terminaller, söz dizimi tanımındaki uç noktalardır. Başka bir çözüm mümkün değildir. Terminaller ayrılmış sözcükler kümesini ve kullanıcı tanımlı tanımlayıcıları içerir.
Terim olmayanlar söz dizimindeki yer tutuculardır. Çoğu, bu söz dizimi özetinde başka bir yerde tanımlanır. Tanımlar özyinelemeli olabilir. Aşağıdaki terimler, C++ Dil Başvurusu'nun Sözcük kuralları bölümünde tanımlanır:
constant
, constant-expression
, identifier
, keyword
, operator
, punctuator
İsteğe bağlı bir bileşen, alt indisli opt ile gösterilir. Örneğin, aşağıdaki söz dizimi küme ayraçları içine alınmış isteğe bağlı bir ifadeyi gösterir:
{
expression
Tercih}
Belge kuralları
Kurallar, sözdiziminin farklı bileşenleri için farklı yazı tipi öznitelikleri kullanır. Simgeler ve yazı tipleri aşağıdaki gibidir:
Öznitelik | Tanım |
---|---|
nonterminal |
İtalik tür terminal olmayanları gösterir. |
#include |
Kalın türdeki terminaller, gösterildiği gibi girilmesi gereken sabit ayrılmış sözcükler ve simgelerdir. Bu bağlamdaki karakterler, her zaman büyük/küçük harfe duyarlıdır. |
Tercih | Tercihin ardından gelen terimler her zaman isteğe bağlıdır. |
varsayılan yazı tipi | Bu yazı tipinde açıklanan veya listelenen kümedeki karakterler, deyimlerde terminaller olarak kullanılabilir. |
Terim olmayan bir öğeyi izleyen iki nokta üst üste (:
), tanımını tanıtır. Alternatif tanımlar, ayrı satırlarda listelenmiştir.
Kod söz dizimi bloklarında, varsayılan yazı tipindeki bu simgelerin özel bir anlamı vardır:
Simge | Tanım |
---|---|
[ ] | köşeli ayraçlar isteğe bağlı bir öğeyi çevreler. |
{ | } | Küme ayraçları, dikey çubuklarla ayrılmış alternatif öğeleri çevreler. |
... | Önceki öğe deseninin yinelenebilir olduğunu gösterir. |
Kod söz dizimi bloklarında virgüller (,
), noktalı virgüller (.
), noktalı virgüller (;
), iki nokta üst üste (:
), parantezler (( )
), çift tırnaklar ("
) ve tek tırnaklar ('
) değişmez değerlerdir.
Ön işlemci dil bilgisi
control-line
:
#define
identifier
token-string
Tercih
#define
identifier
(
identifier
seç,
... ,
identifier
tercih et)
token-string
#include
"
path-spec
"
#include
<
path-spec
>
#line
digit-sequence
"
filename
"
Tercih
#undef
identifier
#error
token-string
#pragma
token-string
constant-expression
:
defined(
identifier
)
defined
identifier
diğer sabit ifadeler
conditional
:
if-part
elif-parts
tercih etelse-part
endif-line
if-part
:
if-line
text
if-line
:
#if
constant-expression
#ifdef
identifier
#ifndef
identifier
elif-parts
:
elif-line
text
elif-parts
elif-line
text
elif-line
:
#elif
constant-expression
else-part
:
else-line
text
else-line
:
#else
endif-line
:
#endif
digit-sequence
:
digit
digit-sequence
digit
digit
: biri
0
1
2
3
4
5
6
7
8
9
token-string
:
Dizesi token
token
:
keyword
identifier
constant
operator
punctuator
filename
:
Yasal işletim sistemi dosya adı
path-spec
:
Yasal dosya yolu
text
:
Herhangi bir metin dizisi
Dekont
Aşağıdaki terimler, C++ Dil Başvurusu'nun Sözcük kuralları bölümünde genişletilir: constant
, constant-expression
, identifier
, keyword
, , operator
ve punctuator
.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin