Yorumlar, program çevirisi 1'in 3. aşaması sırasında kaldırılır : her yorum bir boşluk karakteri ile değiştirilir. bu nedenle yorum /*nt*/
kesinlikle bir simge değildir.
Hiçbiri ise int
, main
, i
, a
ya da return
ayrıştırma programı üretir, makro ön işleme olarak tanımlanan 14 belirteçleri (değil 13):
int
main
(
)
{
i
a
=
10
;
return
0
;
}
İfadeli i
bir tür olarak tanımlanmadığı sürece , C dilbilgisinde bir kuralla eşleşmeyen bir typedef
sözdizimi hatası vardır i a
.
Dolayısıyla değişken adlarının içine yorum yazamazsınız , yorum tanımlayıcıyı 2 ayrı simgeye böler. Bu, herhangi bir ön işleme ve C dili belirteci 2 için geçerlidir .
Bununla birlikte, tekli operatörler ile bunların işlenenleri arasında veya #
önişleme yönergesi ve argümanları arasına yorum ekleyebileceğinizi unutmayın :
#include<stdio.h>
#defineSTAT(a)-1
#ifdefSTAT
intmain(){
inta=+1;
printf("Hello ""world!\n");
returnSTAT;
}
#endif
Ancak yukarıdaki makro tanımı, fonksiyon benzeri bir makroyu değil STAT
, genişleyen normal bir makroyu tanımlar ( a ) - 1
.
Diğer herhangi bir belirteç gibi değişken adları, kaçan yeni satırlarla bölünebilir. Kaçan yeni satırlar dizilerdir veya \
hemen ardından yeni satır gelir. Bu diziler, program çevirisinin 2. aşaması sırasında kaynak kodundan çıkarılır. Ana amaçları, uzun makro tanımlarını birden çok satırda kırmaktır.
Aşağıda, aynı 14 jetonu üreten bir kod parçası 3 bulunmaktadır:
\
i\
nt\
ma\
in()
{\
i/\
*nt\
*/a \
= 10;
r\
et\
urn\
0;}
Kod renklendiricinin dilimlenmiş ve doğranmış anahtar kelimeleri ve yorumu nasıl kaçırdığına dikkat edin :)
1) Bu davranış ANSI-C aka C89'da belirtilmiştir. Bazı eski derleyiciler, belirteç yapıştırmaya neden olan ince bir şekilde farklı davranışlara sahipti, ancak bu tür özellikler yalnızca tarihsel açıdan önemlidir.
2) Bitişik dize sabitlerinin program çevirisinin 6. aşamasında birleştirilmesi gerçeğinden yararlanarak, bir dizi sabitinin içine neredeyse bir yorum ekleyebilirsiniz: printf("Hello "/* my name is Luca */"world!\n");
3) Bu Noel Ağacı sunum stili, gerçek programlarda kullanılmak üzere tasarlanmamıştır, C'nin girdi işleme yeteneklerinin nasıl kötüye kullanılacağını gösterir. Daha ayrıntılı numaralar Uluslararası Gizlenmiş C Kodu Yarışmasını kazandı
cpp -traditional
tarafından uygulandığı şekliyle, şu şekilde genişleyecektiria = 10;
.