Als «c-preprocessor» getaggte Fragen

Ein Textmakroprozessor, der vor dem Kompilieren von C- und C ++ - Sprachprogrammen angewendet wird. Dieses Tag kann auch für Fragen zu anderen Compilern / Sprachen verwendet werden, die von identischen Funktionen abgeleitet sind oder über identische Funktionen verfügen, z. B. die # -Directives in Objective-C oder C #.

8
Überladen des Makros für die Anzahl der Argumente
Ich habe zwei Makros FOO2und FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Ich möchte ein neues Makro FOOwie folgt definieren: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Dies funktioniert jedoch nicht, da Makros die Anzahl der Argumente nicht überladen. Ohne Modifikation FOO2und FOO3ist es eine Möglichkeit , ein Makro zu definieren …
183 c  macros  c-preprocessor 

30
Wann sind C ++ - Makros von Vorteil? [geschlossen]
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 2 Jahren . Verbessere diese Frage Der C- Präprozessor wird von …



6
Verwendung von __FILE__, __LINE__ und __FUNCTION__ in C ++
Vorausgesetzt , dass Ihre C ++ Compiler unterstützt sie, gibt es einen bestimmten Grund , nicht zu verwenden __FILE__, __LINE__und __FUNCTION__für die Protokollierung und Debugging - Zwecke? Es geht mir in erster Linie darum, dem Benutzer irreführende Daten zu geben - beispielsweise die falsche Zeilennummer oder Funktion als Ergebnis der …

2
Wie kann ich zweimal mit dem C-Präprozessor verketten und ein Makro wie in „arg ## _ ## MACRO“ erweitern?
Ich versuche, ein Programm zu schreiben, bei dem die Namen einiger Funktionen vom Wert einer bestimmten Makrovariablen mit einem Makro wie dem folgenden abhängen: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); Leider sind die Makro - NAME()Kurven , dass in int some_function_VARIABLE(int a); eher, …

10
Standardalternative zum ## __ VA_ARGS__ Trick von GCC?
In C99 gibt es ein bekanntes Problem mit leeren Argumenten für verschiedene Makros. Beispiel: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); Die Verwendung von BAR()oben ist gemäß dem C99-Standard in der Tat falsch, da es erweitert wird auf: printf("this breaks!",); Beachten Sie das nachfolgende …

3
Was ist der Zweck eines einzelnen Pfund- / Hash-Zeichens (#) in einer eigenen Zeile im C / C ++ - Präprozessor?
Ich habe mir den Quellcode der Boost- Bibliotheken angesehen und festgestellt, dass häufig einzelne Pfundzeichen ohne Präprozessoranweisungen vorhanden sind. Ich habe das Handbuch und die Spezifikationsanleitung des GCC-Präprozessors gelesen und kann nichts darüber finden. (1) #ifndef BOOST_CONFIG_HPP (2) # include <boost/config.hpp> (3) #endif (4) # (5) #if defined(BOOST_HAS_PRAGMA_ONCE) (6) # …
145 c++  c  boost  c-preprocessor 

17
"#Include" eine Textdatei in einem C-Programm als char []
Gibt es eine Möglichkeit, eine ganze Textdatei zur Kompilierungszeit als Zeichenfolge in ein C-Programm aufzunehmen? etwas wie: file.txt: This is a little text file Haupt c: #include <stdio.h> int main(void) { #blackmagicinclude("file.txt", content) /* equiv: char[] content = "This is\na little\ntext file"; */ printf("%s", content); } ein kleines Programm erhalten, …

15
Soll ich #define, enum oder const verwenden?
In einem C ++ - Projekt, an dem ich arbeite, habe ich einen Flag- Wert, der vier Werte haben kann. Diese vier Flags können kombiniert werden. Flags beschreiben die Datensätze in der Datenbank und können sein: Neuer Eintrag Datensatz gelöscht geänderter Datensatz vorhandener Datensatz Nun möchte ich für jeden Datensatz …






Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.