Для чего может использоваться это сопоставление макроса препроцессора C с ключевым словом C? - PullRequest
2 голосов
/ 11 июля 2019

Я нашел эту строку в устаревшем коде, и мне интересно, для чего она хороша. У вас есть идеи?

#define CONST const

1 Ответ

7 голосов
/ 11 июля 2019

Иногда подобные макросы используются для возможности компиляции кода с более старыми компиляторами, которые могут не поддерживать все функции.

Например, в этом случае вы можете просто определить CONST как пустой, чтопозволит вам скомпилировать код в очень старом компиляторе C без поддержки квалификатора const.

Обычно вы видите подобные макросы в реализациях стандартных библиотек.


Существует еще один распространенный случай макросов, сопоставляемых с ключевыми словами C: возможность вводить новые ключевые слова C в более новые стандарты C без нарушения старого кода.Эти стандартные макросы добавлены для удобства использования, например макрос bool, определенный в stdbool.h для ключевого слова _Bool.

...