[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: