'daki iki kod konumu arasındaki satırları sayın İki kod konumu arasındaki satır sayısını saymak için C önişlemcisini kullanmak istiyorum.C önişlemcisi
#define START __LINE__
static char* string_list[] = {
"some string",
"another string",
...
"last string"
};
#define END __LINE__
#if END - START > 42
#error Too many entries
#endif
Tabii bu, bu durumda START
çünkü çalışmaz ve END
sadece makro __LINE__
redefinitions şunlardır: Temel fikir böyle bir şeydir.
#
ve ##
işleçleriyle biraz etrafta oynuyordum, ancak önişlemci çalışırken START
ve END
değerlerini değerlendirmek için önişlemciyi alamadım.
Sorum şu: Bu mümkün mü?
Çalışma zamanı sırasında dizinin boyutunun kontrol edilmesi bir seçenek değildir.
Önceden herhangi bir ipucu veya fikir için teşekkürler!
Advise 'statik const char * dize_list [] ... – Clifford
“ Çalışma sırasında dizinin boyutunun kontrol edilmesi ”(C) bu imkansızdır. 'Sizeof' bir derleme zamanı sabiti verdiğinin farkında mısınız? Ve “önişlemci çalışırken” gerçekten bir gereklilik (ne 'sizeof' yerine getirmeyecek)? – mafso