В C гарантированы постоянные переменные быть отличными в памяти?

Говоря о строковых литералах, стандарт C99 говорит (6.4.5.6):

Не указано, являются ли эти массивы различными, если их элементы имеют соответствующие значения. Если программа пытается изменить такой массив, поведение не определено.

Мне не удалось найти ни аналогичного предупреждения, ни явной гарантии для константных переменных. Может ли выражение & x == & y в контексте const int x = 12; const int y = 12; вычислить как 1 ? Как насчет константной переменной и строкового литерала (то есть & x == "\ 014 \ 000 \ 000" гарантированно будет 0 даже на 32-битной платформе с прямым порядком байтов) ?

Насколько это важно, раздел «Строковые литералы» в этой записи блога дает контекст вопроса.

11
задан Pascal Cuoq 4 June 2011 в 12:34
поделиться