On Tue, 7 Oct 2014, Dmitrii Kashin wrote:
yuri.nefe...@gmail.com writes:
On Tue, 7 Oct 2014, Денис Ильин wrote:
Коллеги, sizeof вычисляется во время компиляции. Всегда.
Денис
Почему? В любом компиляторе?
Ну, как тебе сказать... Эта штука принимает в качестве параметра
_тип_. Поскольку с символами язык Си работать не умеет, единственное,
что разумно предположить - это то, что sizeof есть некая особая
конструкция, которая раскрывается на этапе свёртывания АСД компилятором.
Что-то я вас не понимаю (с).
Сами же написали: «sizeof(int[n]) преобразуется в нечто
вроде n*sizeof(int)». Это n* и выполняется в run time.
Мое понимание, на настоящий момент, что компилятор вместо sizeof
подставляет либо константу, либо, в случае типа содержащего
массивы переменной длинны, простое выражение зависящее от
размеров массивов.
Ю.