Переопределение ключевых слов в C / C ++
Могу ли я переопределить ключевые слова с помощью #define в C?
Я нашел это в стандартах C ++:
ISO / IEC 14882: 1998 и ISO / IEC 14882: 2003
17.4.3.1.1 Имена макросов [lib.macro.names]
2 Единица перевода, которая включает заголовок, не должна содержать никаких макросов, которые определяют имена, объявленные или определенные в этом заголовке. Также такой модуль перевода не должен определять макросы для имен, лексически идентичных ключевым словам.
164) Недопустимо удалять определение макроса библиотеки с помощью директивы #undef.
ISO / IEC 14882: 2011
17.6.4.3.1 Имена макросов [macro.names]
2 Единица перевода не должна содержать имена #define или #undef, лексически идентичные ключевым словам, идентификаторам, перечисленным в таблице 3, или токенам атрибутов, описанным в 7.6.
Так что мы можем'• переопределить ключевые слова в C ++ 98 / C ++ 03, если мы включим любые заголовочные файлы из стандартной библиотеки C ++, а в C ++ 11 мы можем:не делай это в любом переводчике, верно?