Ну кому в голову пришел такой язык?
Jan. 17th, 2007 11:55 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Оригинальный код:
((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;
no subject
Date: 2007-01-17 01:14 pm (UTC)no subject
Date: 2007-01-17 01:54 pm (UTC)