Ну кому в голову пришел такой язык?
Jan. 17th, 2007 11:55 amОригинальный код:
((void (*)())0)();
Чтобы понять происходящее, я его сначала откомпилировал, затем дизассемблировал, получилось такое:
xor eax,eax
call eax
Затем я это дело разделил собственно на объявление указателя на функцию и на вызов:
typedef void (*fptr)();
void main(){
((fptr)0)();
}
Особо бесит указание имени объявляемого типа в середине объявления. Очень логично. Это как если бы присвоение var1=var2 в стиле va(=var1)r2;
((void (*)())0)();
Чтобы понять происходящее, я его сначала откомпилировал, затем дизассемблировал, получилось такое:
xor eax,eax
call eax
Затем я это дело разделил собственно на объявление указателя на функцию и на вызов:
typedef void (*fptr)();
void main(){
((fptr)0)();
}
Особо бесит указание имени объявляемого типа в середине объявления. Очень логично. Это как если бы присвоение var1=var2 в стиле va(=var1)r2;