2015-11-06 20 views
5

Böyle bir şey hakkında düşünüyorum:Yorumlar önişlemci yönergeleriyle aynı hatta izin veriliyor mu ve bu durumda anlamları nedir?

ön işleme direktifleri önişlemci davranışlarını kontrol:

#include <iostream> // Comment 

Eh, cppreference.com (http://en.cppreference.com/w/cpp/preprocessor) iddia ediyor. ((Dahil, eğer ifdef, ifndef başka, elif, endif, çizgi, hata, Pragma, undef tanımlamak biri) argümanları

# karakteri ön işleme talimatı: Her direktif bir satır kaplar ve aşağıdaki biçimdedir satır sonu Çok iyi, tüm hat için tam bir şartname verilir

) talimat bağlıdır ve orada bir yorum için yer yok. Bu tür hatlarda yorum önerilmesine izin verilmez. Bununla birlikte, hem g ++ hem de clang ++, -Wall -Wextra -Weardantic ile bile bu tür bir girişi kabul ederler. Biri bana gerçeğiyle daha da karıştı http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/

"O # hatlarında yorumlarınızı koymak hala geçerli, ama onlar istediklerini ifade etmeyebilir": Ayrıca cplusplus.com tür yorumların örnekleri sağlar . Bu durumun nasıl olabileceğinden emin değilim, çünkü http://en.cppreference.com/w/cpp/language/translation_phases yorumlarına göre ön işlemcinin başlatılmasından önce yorumlar boşluk karakterleri ile değiştirildi - böylece # satırına izin verilirse, böyle bir # satırının anlambilimine nasıl müdahale edebilirler? Eğer bağlı belgelemek çeviri aşamalarında belirtildiği gibi

cevap

9

: Yorumlar, önişlemci önişlemci # hatları işleyen zaman Yani

faz 4'te yürütülür faz 3. 3. adımda boşlukla değiştirilir Yorumlar, ön işleme direktiflerinin davranışları üzerinde hiçbir etkisi olmayan, boşluklara dönüştürülmüştür.

İlgili konular