тип размера компилятора gcc


Мне любопытна переменная __SIZE_TYPE__, которая предопределена компилятором gcc.

Предположим, что я закодировал следующее предложение в C

typedef __SIZE_TYPE__ size_t; 

Существует ли вероятность возникновения ошибки при использовании другого компилятора C, исключая gcc? Все ли компиляторы C имеют переменную __SIZE_TYPE__?

1 3

1 ответ:

Да, возможно, что ошибка возникает, как только вы используете любой идентификатор с двойным подчеркиванием. См. стандарт с 7.1.3:

Все идентификаторы, начинающиеся с символа подчеркивания и верхнего регистра буква или другое подчеркивание всегда зарезервированы для любого использования.

Что касается __SIZE_TYPE__, то это, по-видимому, идентификатор gcc. Я не думаю, что какой-либо другой компилятор использует его, но нет никаких гарантий. Другой компилятор совершенно свободен использовать тот же идентификатор даже для совершенно другая цель .