018
18.09.2003, 16:45 Uhr
0xdeadbeef
Gott (Operator)
|
Ich lös dann mal auf. Also - main ist zwar normalerweise eine Funktion, aber der Linker erwartet nur ein Symbol, und kann nicht mehr unterscheiden, was das denn im Code mal war. Deswegen laufen auch solche Programme wie
C++: |
char main[]={0xE8,0,0,0,0,0x59,0x83,0xC1,0x21,0xB8,4,0,0,0,0xBB ,1,0,0,0,0xBA,14,0,0,0,0xCD,0x80,0xB8,1,0,0,0,0xBB,0,0,0,0,0xCD ,0x80,'H','e','l','l','o',',',' ','W','o','r','l','d','!','\n'};
|
Dementsprechend ist das kürzestmögliche Programm 5 Zeichen lang, nämlich:
Es gibt beim gcc übrigens auch eine entsprechende Compiler-Warning:
Code: |
short.c:1: Warning: `main' is usually a function
|
--edit: Tipfeeler ausgemerzt. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 18.09.2003 um 16:50 Uhr von 0xdeadbeef editiert. |