Кажется, я помню, что можно было бы подавить замену (расширение) макроса на C, поместив имя макроса в скобки, например. (free)(p)
будет вызывать функцию free
независимо от того, был ли задан макрос free
. Я не вижу упоминания об этом в стандарте C99 (он есть, см. Ответ), и я замечаю, что MSVS 2013 не реализует его либо. Добавлено в свете ответа: это так, как требуется стандарту, т.е. Только для макросов функций, расширение которых запускается следующим образом (
и, таким образом, задерживается промежуточным ")
.
Я мечтаю, или была такая возможность, и если да, то в чем причина ее снятия? Или присутствовал только на определенных диалектах?