Должен ли #define добавлять пробелы вокруг макросов?

Я смотрел на программу вhttp://www0.us.ioccc.org/1988/westley.cупоминается вдругой SO ответ - он должен напечатать значение пи, около 3,142, но когда я его скомпилирую и запусту, я получу0.250, Похоже, когда препроцессор GCC (как проверенный 4.1.2, так и 3.4.6) работает в коде, он преобразует

#define _ -F<00||--F-OO--;
_-_-_

в

-F<00||--F-OO--;- -F<00||--F-OO--;- -F<00||--F-OO--;

но я думаю, чтобы программа работала, она должна быть

-F<00||--F-OO--;--F<00||--F-OO--;--F<00||--F-OO--;

то есть GCC вставляет дополнительный пробел перед расширением "макроса". Это способ#define должен работать? (Это изменилось с 1988 года?)

РЕДАКТИРОВАТЬТакже приветствуется любая информация о том, как предотвратить появление этих пробелов.

Ответы на вопрос(4)

Ваш ответ на вопрос