Re: [OT] opaque pointer
yuri.nefedov@gmail.com -> debian-russian@lists.debian.org @ Tue, 7 Oct 2014 22:24:02 +0400 (MSK):
>> y> Что-то я вас не понимаю (с).
>> y> Сами же написали: «sizeof(int[n]) преобразуется в нечто
>> y> вроде n*sizeof(int)». Это n* и выполняется в run time.
>>
>> n* - да, а sizeof - нет. С чем ты споришь?
>>
y> Еще раз:
y> int temp[n];
y> sizeof(temp);
y> sizeof(temp) вычисляется как n*4 в run time,
y> и n я могу задавать из командной строки.
y> Следовательно sizeof() преобразуется в выражение
y> которое вычисляется во время исполнения.
Ну, ок. Хотя это все-таки обман трудящихся. В смысле, не честное
вычисление памяти, занимаемой данными, в рантайме (что в модели C
невозможно), а хак, который может сработать, а может и нет. Правда,
расскажут об этом уже во время компиляции.
Впрочем, по сути это тот же самый хак, который позволяет
void f (int n) {
something var[n];
}
а этот хак - в стандарте.
Reply to: