Warum ist # vor # includestdio.h erforderlich?

7

Was ist die Funktion von # ?

    
machchakumar 10.07.2010, 04:03
quelle

6 Antworten

15

Es bezeichnet eine Präprozessordirektive :

  

Eine wichtige Sache, an die Sie denken müssen, ist, dass der C-Präprozessor nicht Teil des C-Compilers ist.

     

Der C-Präprozessor verwendet eine andere Syntax. Alle Anweisungen im C-Präprozessor beginnen mit einem Nummernzeichen (#). Mit anderen Worten, das Rautenzeichen bezeichnet den Beginn einer Präprozessordirektive und es muss das erste Nicht-Leerzeichen in der Zeile sein.

# wurde wahrscheinlich willkürlich als ein sonst nicht verwendetes Zeichen in C-Syntax ausgewählt. @ hätte genauso gut funktioniert, nehme ich an.

Wenn es kein Zeichen dafür gibt, dann würde es wahrscheinlich Schwierigkeiten geben, zwischen dem für den Präprozessor bestimmten Code zu unterscheiden - wie würden Sie sagen, ob if (FOO) beabsichtigt war, vorverarbeitet zu werden oder nicht?

    
Mark Rushakoff 10.07.2010 04:05
quelle
4

Weil # das Standardpräfix für Präprozessoranweisungen ist.

In frühen C-Compilern war der Vorprozessor ein separates Programm, das alle Präprozessoranweisungen (ähnlich wie frühe C ++ "Compiler" wie cfront-generierten C-Code) behandelte und C-Code für den Compiler generierte immer noch ein separates Programm, aber es kann auch nur eine Phase des Compilers sein).

Das Symbol% ​​co_de% ist nur ein nützliches Zeichen, das vom Präprozessor erkannt und bearbeitet werden kann, wie zum Beispiel:

%Vor%

und so weiter.

    
paxdiablo 10.07.2010 04:05
quelle
4
  

Präprozessordirektiven sind Zeilen, die im Code unserer Programme enthalten sind und keine Programmanweisungen, sondern Anweisungen für den Präprozessor sind. Diesen Zeilen wird immer ein Rautenzeichen (#) vorangestellt. Der Präprozessor wird ausgeführt, bevor die eigentliche Kompilierung des Codes beginnt, daher verdaut der Präprozessor alle diese Direktiven, bevor irgendein Code durch die Anweisungen erzeugt wird.

     

Quelle: Ссылка

    
TNi 10.07.2010 04:06
quelle
2

Das liegt daran, dass # ein Indikator dafür ist, dass es sich um eine Präprozessor-Anweisung handelt.

bedeutet, bevor es Ihren Code kompiliert, wird es die Datei stdio.h enthalten

    
Keith Nicholas 10.07.2010 04:04
quelle
1

# ist eine Vorverarbeitungsrichtlinie. Der Präprozessor behandelt Direktiven für die Einfügung von Quelldateien ( #include ), Makrodefinitionen ( #define ) und bedingte Einschlüsse ( #if ). Wenn der Vorprozessor dies feststellt, wird er die Header einschließen, die Makros erweitern und zur Kompilierung übergehen. Es kann für andere Zwecke verwendet werden, z. B. das Beenden der Kompilierung mit der #error-Direktive. Dies wird bedingte Kompilierung genannt.

    
Praveen S 10.07.2010 06:59
quelle
0

Wir wissen, ohne Präprozessor-Programm nicht ausgeführt werden. Und Präprozessor ist # oder #include oder #define oder andere. Also # wird vor # include benötigt.

    
Sabina 07.10.2015 04:31
quelle

Tags und Links