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