Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » In der Kürze...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
18.09.2003, 16:15 Uhr
virtual
Sexiest Bit alive
(Operator)


Du betonst Kompilieren Damit ein Programm rauskommt, muß ja noch gelinkt werden, sonst hat man kein Executable.
Die Kürzeste Übersetzungseinheit, die ich kenne ist:

C++:


(0 Zeichen, kommt eine feine Obejtk datei raus).

Das kürzeste vollständige Programm benötigt die Funktion main (Vier zeichen). Eine Funktion hat stets einen Body (Nochmal zwei zeichen) und eine parameterliste die leer sein darf (auch zwei Zeichen). Also:

C++:
main(){}


Je nach genauer Fragestellung variert damit die Antwort zwischen 0 und 8.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
18.09.2003, 16:18 Uhr
typecast
aka loddab
(Operator)


@virtual: Schau dir den Post Nummer 005 an. Da hat beefy noch mal genauer gesagt, was wir bringen sollen.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
18.09.2003, 16:21 Uhr
Pablo
Supertux
(Operator)


Dann ist doch

C++:
main(){}



Stimmt, meine andere Version konnte ich nur kompilieren, nicht linken.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
18.09.2003, 16:26 Uhr
virtual
Sexiest Bit alive
(Operator)


Nun gut:

C++:
/* Empty*/


Also 0 zeichen, denn

Code:
gcc -nostdlib empty.c


Macht zwar ne warning beim Linken, aber baut ein abstürzendes Programm.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
18.09.2003, 16:30 Uhr
typecast
aka loddab
(Operator)


@virtual: Entspricht das auch dem C89?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
18.09.2003, 16:38 Uhr
Pablo
Supertux
(Operator)


Aber das erzeugt Fehler Also bin ich der Meinung, dass das nicht gültig ist
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
18.09.2003, 16:41 Uhr
typecast
aka loddab
(Operator)


@Pablo: beefy hat doch gesagt, dass es egal ist, ob das Porgramm nacher abstürtzt. Es soll nur kompiliert und gelinkt werden.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
18.09.2003, 16:45 Uhr
Pablo
Supertux
(Operator)


ach so! Dann schon.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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:

C++:
main;


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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
18.09.2003, 16:46 Uhr
virtual
Sexiest Bit alive
(Operator)


Nein, meiner Meinung nach findet man keine Lösung unter 8 Zeichen, ich würde vermutlich zu jedem anderen Ansatz als

C++:
main(){}


Gegenargumente aus dem standard zitieren können, weil dieser ziemlich explizit festlegt, daß ein Vollständiges Programm main als Funktion anbieten muß. Von daher sind solche Konstrukte

C++:
main;


auch nicht gültig (ich denke beefy schwebte sowas vor): das geht zwar durch den Compiler, aber hat nichts mit ANSI C89 zu tun.

Letztlich auch erstaunlich, wo wir inzwischen Enden: Bei rätseln, wo keine Programme mehr rauskommen sollen
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: