Ich gehe einige C-Kursnotizen durch und jede C-Programmquelldatei beginnt mit einer einzelnen #
in der ersten Zeile des Programms.
Dann gibt es leere Zeilen und folgt den anderen Dingen, denen die main
Funktion folgt .
Was ist der Grund für die #
?
(Es ist jetzt veraltet und ich kann den Kerl nicht wirklich fragen.)
Hier ist ein Beispiel:
#
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
c
c-preprocessor
Der Hauptmann
quelle
quelle
#
, dann eine leere Zeile, dann das Programm.#
ist die Verschleierung. Wenn Sie alle verwirren möchten, können Sie beispielsweise alle Ihre Quelldateien mit der Zeile beginnen#//#BEGIN#\\#
(was absolut nichts bewirkt).Antworten:
Wow, diese Anforderung reicht bis in die 1970er Jahre zurück.
Wenn Sie in den frühen Tagen von vorstandardisiertem C den Präprozessor aufrufen wollten , mussten Sie
#
als erstes in die erste Zeile einer Quelldatei schreiben . Wenn Sie nur ein#
Zeichen oben in die Datei schreiben, können Sie die anderen Präprozessoranweisungen flexibel platzieren.Aus einem Original-C-Entwurf des großen Dennis Ritchie selbst :
Dieses Dokument eignet sich hervorragend zum Lesen (und hat mir erlaubt, wie eine verrückte Katze auf diese Frage zu springen).
Ich vermute, es ist der Dozent, der einfach nur sentimental ist - es ist seit ANSI C nicht mehr erforderlich.
quelle
#
in einer Zeile für sich sein muss, sondern dass es mit einem beginnt.#
Warum also nicht direkt für ein#include
? Oder verstehe ich es falsch?Tut nichts
Ab dem ISO-Standard von C / C ++:
In heutigen Compilern macht dieser leere Hash also nichts (wie -
new-line ;
hat keine Funktionalität).PS : In vorab standardisiert C ,
# new-line
hatte eine wichtige Rolle, es verwendet wurde , die C Pre-Processor (Wie von @Bathsheba) aufzurufen. Der Code hier wurde also entweder innerhalb dieses Zeitraums geschrieben oder kam aus Gewohnheit.quelle
Sie müssen über den Kompilierungsprozess von C Bescheid wissen. Denn das ist "muss wissen", wie der Quellcode in ausführbaren Binärcode (Datei) konvertiert wird.
Beim Kompilierungsprozess muss der C-Quellcode den Vorprozessorabschnitt durchqueren. Aber wie kann man den Compiler anweisen, den Code vorzuverarbeiten? ... Dass das Zeitsymbol # in den Indikator für die Vorverarbeitung zum Compiler eingeführt wurde.
Zum Beispiel
#define PI 3.141
ist im Quellcode. Dann wird es nach der Vorverarbeitungssitzung geändert. Das heißt, alle PI werden in 3.141 geändert.Auf diese Weise
#include <stdio.h>
werden die Standard-E / A-Funktionen Ihrem Quellcode hinzugefügt.Wenn Sie einen Linux-Computer haben, kompilieren Sie wie
gcc -save-temps source_code.c
. Und sehen Sie sich die Compiler-Ausgaben an.quelle