Diğer cevaplar ve yorumlar bunun korkunç, yanıltıcı ve kötü yazılmış bir soru olduğunu söyler. Ancak henüz kimsenin tanımlayamadığı bir sorun daha var. Soru:
Bir işlev bildiriminden sonra noktalı virgül (';') gerekmez. Doğru ya da yanlış.
Tamam, bir işlev bildirimine bakalım:
int func(); /* */
/* ^ */
/* | */
/* That whitespace is "after the function declaration". */
Bütün bunlar deklarasyon . Beyan edilmez int func()
ve daha sonra takip bir ;
. Beyannamenin int func();
ardından boşluk bırakılır.
Öyleyse soru şu: Bildirgeden sonra noktalı virgül gerekli mi? Tabii ki değil. Deklarasyonda zaten sona eren bir noktalı virgül var. Deklarasyondan sonra noktalı virgül anlamsız olacaktır. Aksine, bir işlev bildiriminden sonraint func(); ;
noktalı virgül olur .
Soru neredeyse kesin olduğu amaçlanan soru sormak için "doğru veya yanlış: bir işlev bildiriminde son belirteç daima bir noktalı" Ama sınav yazarı sorun hakkında açıkça düşünmüyordum çünkü, yazdıkları soru değil.
Benim tavsiyem, dil sınavlarını tamamen programlamaktan kaçınmaktır. Çok korkunçlar.
Biz konudayken eğlenceli bir gerçek. C # 'da bunların tümü yasaldır:
class C {}
class D {};
struct E {}
struct F {};
C # 'da, sınıf veya yapı bildirimi, noktalı virgülle bitebilir veya bitmeyebilir. Bu garip küçük özellik, parmak uçlarında tip bildirimlerinin anlamsız bir noktalı virgülle sona erdiği C # 'a gelen C / C ++ programcılarının yararı için eklendi; tasarım ekibi bu alışkanlığa sahip oldukları için onları cezalandırmak istemedi. :-)