Merkwürdiger C-Code



  • Hallo,

    ich habe hier ein seltsames Codefragment und kein Erklärung dafür, warum der Compiler nicht meckert.Was pasiert hier? Wer kann das erklären?

    main()
    {3;4;5;"Hallo";}

    Es passiert nichts beim Starten, aber warum beschwert sich der Compiler nicht?
    Es findet doch keine Variablendeklaration statt, keine Typbezeichnung, nichts!
    ??????

    Besten Dank schon mal

    Marcus



  • wo liegt das problem?

    das programm macht nichts... warum sollte es ungueltig sein
    4;
    zu schreiben?

    Schliesslich ist 4 ja ein ausdruck, oder nicht?



  • und was ist mit "hallo"??? das dürfte doch eigentlich nen fehler geben oder net?

    mfg



  • "Hallo" ist genau wie 5 ein einfacher ausdruck!



  • Nee, ist auch nur ein Ausdruck.
    Wenn man schreibt, a = 2*3. Dann wird '2*3' als Ausdruck ausgewertet und a zugewiesen.
    Schreibt man jetzt nur 2*3 dann wertet der Compiler das auch aus (oder optimierts halt weg), nur das dass Ausgewertete hier eben "verpufft", weils nicht verwendet wird.

    Eigentlich sollte der Compiler aber auch 'ne Warnung geben. 'Statement has no effect' oder so.



  • Original erstellt von DrGreenthumb:
    **

    Eigentlich sollte der Compiler aber auch 'ne Warnung geben. 'Statement has no effect' oder so.**

    "Statement is bullshit and will be ignored....".... 😃

    Wenn der MSVC das so ausgeben würde, hätte man den Windows-code wohl nie kompilieren können vor lauter fehler... 😃 😃 😉


Anmelden zum Antworten