@anchor{C Compiler Characteristics}
Следующие макросы выполняют проверку свойств компилятора C или
архитектуры машины. Для проверки характеристик, не перечисленных в этом
разделе, используйте макросы AC_TRY_COMPILE (see section Проверка синтаксиса) или AC_TRY_RUN (see section Проверка поведения во время выполнения).
WORDS_BIGENDIAN.
const,
то макросу const присваивается пустое значение. Некоторые
компиляторы C не определяют константу __STDC__, но поддерживают
const; некоторые компиляторы, определяющие
__STDC__, не полностью поддерживают const. Программы могут
просто использовать const, как будто любой компилятор C
поддерживает его; для тех компиляторов, которые не имеют такой поддержки,
`Makefile' или заголовочный файл настройки определят это слово как
имеющее пустое значение.
inline, то ничего не
делается. В противном случае, inline определяется равным
__inline__ или __inline, если компилятор поддерживает один
из этих вариантов, иначе inline определяется равным пустому
значению.
char является беззнаковым, то определяется переменная
__CHAR_UNSIGNED__ (если компилятор C еще не определил ее).
long double, то определяется
переменная HAVE_LONG_DOUBLE. Некоторые компиляторы C, которые не
определяют __STDC__, поддерживают long double; а
некоторые компиляторы, определяющие __STDC__, не поддерживают тип
long double.
HAVE_STRINGIZE. Строковым (stringinzing)оператором является `#'
и он используется в макросах, например:
#define x(y) #y
SIZEOF_uctype равным числу байтов во встроенном
типе C (или C++) type, например, `int' или `char *'.
Если `type' неизвестен компилятору, то переменная получает
значение 0.
uctype является type, со строчными буквами,
преобразованными в прописные, пробелы преобразуются в знаки
подчеркивания, и знаки звездочка (*) заменяются на `P'. Если
производится кросс-компиляция, то используется значение cross-size
(если оно задано), в противном случае configure прекращает работу
с выдачей сообщения об ошибке.
Например, вызов
AC_CHECK_SIZEOF(int *)
определяет SIZEOF_INT_P равным 8 на системах DEC Alpha AXP.
int имеет размер 16 бит, то определяется переменная
INT_16_BITS. Этот макрос является устаревшим; вместо него лучше
использовать общий макрос `AC_CHECK_SIZEOF(int)'.
long int имеет размер 64 бита, то определяется
переменная LONG_64_BITS. Этот макрос является устаревшим; вместо
него лучше использовать вызов `AC_CHECK_SIZEOF(long)'.
Go to the first, previous, next, last section, table of contents.