Макрос __CHAR_BIT__ предопределен для компилятора MSV C? - PullRequest
0 голосов
/ 04 февраля 2020

Макрос __CHAR_BIT__ предопределен для компилятора MSV C? Как узнать список предопределенных макросов, доступных для компилятора?

1 Ответ

2 голосов
/ 04 февраля 2020

Документация компилятора предоставит список предопределенных макросов. В случае MSV C это здесь . Все макросы, указанные в стандарте, будут по-прежнему доступны, если вы включите соответствующий заголовок (и в некоторых случаях, если вы включите другой заголовок).

В случае __CHAR_BIT__ это не так часть стандарта; макрос CHAR_BIT есть и объявлен в заголовке <climits>. Я скорее сомневаюсь, что MSV C имеет CHAR_BIT или __CHAR_BIT__ в качестве предопределенного макроса: этот компилятор в основном использует предопределенные макросы для обеспечения доступа к флагам компиляции и вместо этого определяет архитектурно-зависимые макросы непосредственно в заголовках (конечно, используя предопределенные макросы, чтобы определить, что это за архитектура).

Я полагаю, чтобы проверить, является ли макрос предопределенным , а не определен в заголовке, вы просто должны проверить перед включением любых заголовков. Хотя я не могу придумать причину, по которой вы хотите это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...