Este es un ejemplo del uso de macros para depurar. Es más fácil de usar que assert, aunque menos funcional.
#include <stdio.h> // Value debug para depurar valores de variables #define VDEBUG(type, x) printf("En el archivo %s, función %s, línea %d, "#x " = %"#type"\n" ,__FILE__, __func__, __LINE__, x) int main(){ int var = 3; int array[] = {3, 4, 5, 6}; VDEBUG(d, var); VDEBUG(d, array[var]); }
Imprime:
En el archivo /home/usuario/Desktop/debug.c, función main, línea 8, var = 3 En el archivo /home/usuario/Desktop/debug.c, función main, línea 9, array[var] = 6