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

Re: Ernst-gemeint - SchmiTT...



On Fri, Feb 24, 2012 at 04:08:28PM +0100, Martin Steigerwald wrote:
> Am Freitag, 24. Februar 2012 schrieb Salvalaggio Marino:
> > Hallo Freunde,
> > 
> > nach dem Geblödel mal eine ernste Frage zu jenem dubiosen Code:
> > 
> > Ich hatte dort unter anderem mal folgende Frage aufgeworfen:
> > 
> >          Was ich mich bei jenem Code vielmehr frage ist: Wird der
> > vom C-Compiler  wirklich ohne Fehlermeldung angenommen und als
> > lauffähiges Programm ausgegeben?
> 
> Cut&Paste => schmittchens-supertool.c
> 
> gcc -o schmittchens-universalreparator schmittchens-universalreparator.c
> 
> Hab überlegt, ob ich es mal ausprobiere. Aus purer Neugier. Hab ich aber 
> bislang nicht gemacht.

Wer Zahlen mag, soll's tun.

Wenn man den Code nimmt, sauber formattiert, Kommentare löscht, unnötige
includes entfernt und die vielen printf()s löscht (das Programm soll ja
angeblich was können außer den Bildschirm vollzuschreiben), dann bleibt:

* Ein paar lokale Variablen
* Eine Schleife von true bis 4194304
  * darin Pointer mit Adressen füttern, die dann vergessen werden
* Alle Variablen auf false setzen

Da passiet mit anderen Worten nichts. Wenn man das mit Optimierung
kompiliert (-O2), dann merkt das sogar der Compiler. Ohne die printf()s
im Code bleibt präzise nichts. Wer's selber sehen will, nimmt sich den
Code, löscht die printf()-Zeilen raus und vergleicht das Ergebnis mit
dem eines leeren Programms.

Mit dem Code in a/schmitt.c:

mkdir b
echo 'int main() { return 0; }' > b/schmitt.c
gcc -O2 -S -o a/schmitt a/schmitt.c
gcc -O2 -S -o b/schmitt b/schmitt.c
diff {a,b}/schmitt

:)

Hauke

-- 
 .''`.   Jan Hauke Rahm <jhr@debian.org>               www.jhr-online.de
: :'  :  Debian Developer                                 www.debian.org
`. `'`   Member of the Linux Foundation                    www.linux.com
  `-     Fellow of the Free Software Foundation Europe      www.fsfe.org

Attachment: signature.asc
Description: Digital signature


Reply to: