Те, кто пишет операторы не обрамляя пробелами, заслуживают распечатывания стека. Поэтому вариант tailgunner-а лучше, т.к. неграмотные сикодеры будут страдать, а это всегда хорошо.
Какая то странная атака получается.
На сколько я знаю, макрос заменяется препроцессором, поэтому в коде после препроцессора будет:
printf(«bla = %d», x);
те строка будет подставлена как есть, отсюда и вывод, что ваша атака требует изменения исходников программы, тк из вне изменить этот параметр невозможно.