Я смотрел программу на http://www0.us.ioccc.org/1988/westley.c, упомянутый в другой ответ SO - он должен печатать значение pi, около 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 добавляет дополнительное пространство перед расширением "macro". Предполагается, что путь #define
должен работать? (Сменилось ли это с 1988 года?)
EDIT: Также будет оценена любая информация о том, как предотвратить появление этих пробелов.