¿Es posible, utilizando el preprocesador C / C ++, contar líneas dentro de un archivo fuente, ya sea en una macro o en algún tipo de valor disponible en tiempo de compilación? Por ejemplo, ¿puedo reemplazar MAGIC1
, MAGIC2
y MAGIC3
en lo siguiente, y obtener el valor 4 de alguna manera cuando lo uso 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
Notas:
- Las extensiones específicas del compilador a las capacidades del preprocesador son aceptables pero indeseables.
- Si esto es posible solo con la ayuda de algunos de C ++, a diferencia de C, construir, eso también es aceptable pero indeseable (es decir, me gustaría algo que funcione para C).
- Obviamente, esto se puede hacer ejecutando el archivo fuente a través de un script de procesador externo, pero eso no es lo que estoy preguntando.
__COUNTER__
y / o BOOST_PP_COUNTER
?
int arr[MAGIC4]
y obtener el número de líneas en alguna sección previamente contada de mi código.
__LINE__
que representa el número de línea actual