Операционная система UNIX. Руководство программиста

     

КОНСТАНТНЫЕ ВЫРАЖЕНИЯ


В нескольких случаях в языке C требуются выражения, которые вырабатывают константное значение: после case, в качестве границ массива, и в инициализаторах. В первых двух случаях выражение может включать только целые константы, символьные константы, преобразования к целочисленным типам, константы перечислимых типов и выражения sizeof, быть может соединенные бинарными операциями

+ - * / % & | ^ << >> == != < > <= >= &&

унарными операциями

- ~

или тернарной операцией

? :

Разрешается использовать скобки, но только для группировки, а не для вызова функций.

Несколько больше свободы в случае инициализаторов; кроме константных выражений, указанных выше, можно также использовать вещественные константы и преобразования к произвольным типам, можно применять унарную операцию & к внешним/статическим объектам и к внешним/статическим массивам, индексированным константными выражениями. Унарная операция & может также применяться неявно при появлении функций и непроиндексированных массивов. Основное правило заключается в том, что значения инициализаторов должны быть константами либо адресами предварительно определенных внешних или статических объектов плюс/минус константа.



Содержание раздела