C · Essencial · Português · Técnico
macros predefinidas
Nomes que o compilador define sozinho, como __FILE__, __LINE__ e __DATE__, além do identificador __func__, que ajudam a registrar em que ponto do código a execução está.
Onde usar
Aparecem em macros de log e de assert para imprimir arquivo, linha e função de onde o erro partiu. Só funcionam bem dentro de macro, pois uma função de log perde esse contexto.
Em código
#include <stdio.h>
#define LOG(m) \
printf("%s:%d %s\n", __FILE__, __LINE__, m)
int main(void) {
LOG("iniciando");
}Exemplos
A macro de log imprime __FILE__ e __LINE__ em cada mensagem.
Usa __func__ para saber em qual função o erro aconteceu.
Cuidado
Usar __LINE__ dentro de uma função de log comum: ele sempre mostra a linha do próprio log, não a de quem o chamou.
Sinônimos
macros do compilador