6 Stimmen

Können Sie dieses "Hello world"-Programm erklären?

Ich habe gerade angefangen, C zu lernen, aber ich verstehe diesen Teil des Codes nicht. Kann mir jemand die einzelnen Codezeilen erklären und was sie bewirken? Ich danke Ihnen! Bitte antworten Sie einfach auf das, was ich gesagt habe, anstatt zu sagen (es sollte im Buch stehen) Danke. Hoffentlich könnt ihr mir helfen.

#include <stdio.h>

void SayHello( void );

int main (int argc, const char * argv[]) {
    SayHello();

    return 0;
}

void SayHello( void ) {
    printf( "Hello, world!\n" );
}

3voto

Isaac Waller Punkte 32401
#include <stdio.h>

Binden Sie die Standard-Ein-/Ausgabebibliothek ein.

void SayHello( void );

Definieren Sie eine Funktion mit dem Namen SayHello, die keinen Rückgabewert und keine Argumente hat. Hier wird kein Körper definiert - er wird später definiert.

int main (int argc, const char * argv[]) {

Definieren Sie eine weitere Funktion, die main heißt. Sie ist der Einstiegspunkt in Ihr Programm. Sie nimmt 2 Argumente entgegen - eine ganze Zahl namens argc (die Anzahl der Befehlszeilenargumente) und ein const char*-Array namens argv (die Befehlszeilenargumente). Starten Sie den Hauptteil.

SayHello();

Rufen Sie die SayHello-Methode auf, die wir zuvor definiert haben (führen Sie die Anweisungen darin aus).

return 0;

Rückgabe von 0 (Erfolg) an das Betriebssystem.

}

Beenden Sie den main()-Körper.

void SayHello( void ) {

Starten Sie den Körper der zuvor definierten SayHello-Funktion.

printf( "Hello, world!\n" );

Druckt "Hallo, Welt!" auf den Bildschirm. Die Funktion printf stammt aus der Standard-Eingabe/Ausgabe-Bibliothek, die wir zuvor eingebunden haben.

}

Beenden Sie den SayHello()-Körper.

Die Ausgabe dieses Programms würde lauten:

Hello, World!

2voto

AareP Punkte 2303

include "stdio.h" <-- fügt eine weitere C++-Datei in diese Datei ein, die sich in einem unbekannten Ordner befindet. Erfordert, dass das Programm mit einer stdio.lib-Bibliothek gelinkt wird, die jedoch normalerweise standardmäßig zur Programmverknüpfung hinzugefügt wird.

MyType SayHello(void); <-- Deklaration einer Funktion, die eine MyType-Klasse-Instanz zurückgibt und keine Argumente hat

MyType SayHello(); <-- das Gleiche

MyType SayHello(0); <-- Erstellung einer MyType-Klasseninstanz mit der Ganzzahl 0, die an den Klassenkonstruktor übergeben wird.

void SayHello(); <-- Deklaration einer Funktion, die nichts zurückgibt (die keine Rückgabewerte enthält)

argc/argv <-- dumme Abkürzungen für "Argumentanzahl" und "Argumentvektor"

void SayHello() {...} <-- in einer Binärdatei kompilierter Code, der von jedem aufgerufen werden kann, der die Deklaration dieser Funktion kennt.

printf( "Hallo, Welt! \n " ); <-- Sprung zur Speicheradresse der printf-Funktion, mit einem String-Argument.

1voto

Bernard Punkte 44542

Füllung, damit die nächste Zeile als Codeblock erkannt wird

#include <stdio.h>

Hier steht: "Suchen Sie im Suchpfad des Compilers nach Include-Dateien für die Datei 'stdio.h', und fügen Sie den Inhalt der Dateien hier ein. Beachten Sie, dass dies geschieht, bevor der Compiler sie überhaupt sieht.

void SayHello( void );

Dies ist ein Funktionsprototyp. Er besagt im Wesentlichen: "Es wird eine Funktion definiert, die dieser Signatur entspricht.

int main (int argc, const char * argv[]) {
    SayHello();

Dies ruft die oben erwähnte Funktion auf. Wenn diese erreicht ist, geht die Ausführung in den Körper der Funktion über und kehrt zurück, wenn die Funktion endet.

    return 0;

Der Wert 0 wird an das System zurückgegeben (was gemäß der Konvention keinen Fehler bedeutet) und das Programm wird beendet. }

void SayHello( void ) {
    printf( "Hello, world!\n" );

Dies ruft die C-Standardbibliotheksfunktion printf auf und gibt die angegebene Zeichenkette auf stdout aus.

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X