Довольно простая подсказка для тех кто пишет или только начинает писать на Си и использует отладочные принтф.
Так вот, отладочный принтф, можно записать так:
printf("debug printf on line %d file %s \n", __LINE__, __FILE__);
И в результате в скомпилированном коде получить какой-то такой вывод:
debug printf on line 4 file main.c
А теперь представьте, что можно писать такой принт в выражении сравнения с чем-то ? Представили ?
Ну вот примерно так же работает макрос assert()
из <assert.h>
за тем исключением,
что ещё вызывает abort()
, если значение не равны.
Про макросы __LINE__
и __FILE__
можно прочитать тут:
https://jadlevesque.github.io/PPMP-Iceberg/
<<< СC <<< CPP <<< hint