C / C ++ önişlemcisini kullanarak, kaynak dosyadaki satırları bir makroya veya bir tür derleme zamanı kullanılabilir değere saymak mümkün müdür? Örneğin ben yerine MAGIC1
, MAGIC2
ve MAGIC3
kullanırken aşağıda ve bir şekilde değerini 4 olsun MAGIC3
?
MAGIC1 // can be placed wherever you like before the relevant
// lines - either right before them, or in global scope etc.
foo(); MAGIC2
bar(); MAGIC2
baz(); MAGIC2
quux(); MAGIC2
// ... possibly a bunch of code here; not guaranteed to be in same scope ...
MAGIC3
Notlar:
- Ön işlemcinin yeteneklerine yönelik derleyiciye özgü uzantılar kabul edilebilir, ancak istenmeyen bir durumdur.
- Bu sadece C + 'nın aksine, bazı C ++ yardımıyla mümkün, bu da kabul edilebilir ama istenmeyen (yani C için işe yarayacak bir şey istiyorum).
- Açıkçası bu, kaynak dosyayı bazı harici işlemci komut dosyası aracılığıyla çalıştırarak yapılabilir, ancak istediğim bu değil.
__COUNTER__
Ve / veya mı arıyorsunuz BOOST_PP_COUNTER
?
int arr[MAGIC4]
daha önce sayılan bazı bölümlerindeki satır sayısını almak için.
__LINE__
var