Ö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:

{expressionTercih}

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:
#defineidentifiertoken-stringTercih
#defineidentifier(identifierseç, ... ,identifiertercih et)token-string
#include "path-spec"
#include <path-spec>
#linedigit-sequence"filename"Tercih
#undef identifier
#error token-string
#pragma token-string

constant-expression:
defined( identifier )
defined identifier
 diğer sabit ifadeler

conditional:
if-partelif-partstercih etelse-partendif-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, , operatorve punctuator.

Ayrıca bkz.

C/C++ ön işlemci başvurusu