Если вы настаиваете на использовании __LINE__
в строке, следующей за вызовом, просто выполните:
ERROR_MACRO("Err in %s on line %d\n",
__FILE__, __LINE__ - 1);
Еще лучше, почему бы вам просто не определить макрос для вашего макроса:
#define MY_ERR ERROR_MACRO("Err in %s on line %d", __FILE__, __LINE__)
Теперь вы можете просто позвонить по короткому номеру MY_ERR;
вместо того, чтобы беспокоиться об ограничениях на длину линии (поэтому, я полагаю, вы делаете это).