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 #.

19
#ifdef vs #if - Was ist besser / sicherer als eine Methode zum Aktivieren / Deaktivieren der Kompilierung bestimmter Codeabschnitte?
Das mag eine Frage des Stils sein, aber es gibt eine gewisse Kluft in unserem Entwicklerteam und ich habe mich gefragt, ob jemand andere Ideen zu diesem Thema hat ... Grundsätzlich haben wir einige Debug-Print-Anweisungen, die wir während der normalen Entwicklung deaktivieren. Persönlich mache ich lieber Folgendes: //---- SomeSourceFile.cpp ---- …



10
C / C ++ - Zeilennummer
Kann ich zum Zwecke des Debuggens die Zeilennummer in C / C ++ - Compilern abrufen ? (Standardmethode oder spezielle Methoden für bestimmte Compiler) z.B if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic compilation)


7
Komma im C / C ++ - Makro
Angenommen, wir haben ein solches Makro #define FOO(type,name) type name Was wir gerne gebrauchen könnten FOO(int, int_var); Aber nicht immer so einfach: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Natürlich könnten wir tun: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK das ist …
103 c++  c  macros  c-preprocessor 

8
So definieren Sie ein Präprozessorsymbol in Xcode
Ist es möglich, ein Symbol für die bedingte Kompilierung festzulegen, indem Eigenschaften in einem Xcode-Projekt eingerichtet werden? Mein Ziel ist es, ein Symbol zu erstellen, das für alle Dateien verfügbar ist, ohne import / include verwenden zu müssen, damit eine Reihe allgemeiner Klassen in einigen Projekten ein besonderes Verhalten aufweisen …

11
Makro vs Funktion in C.
Ich habe immer Beispiele und Fälle gesehen, in denen die Verwendung eines Makros besser ist als die Verwendung von Funktionen. Könnte mir jemand anhand eines Beispiels den Nachteil eines Makros gegenüber einer Funktion erklären?


8
#Defines einrücken
Ich weiß, dass #defines usw. normalerweise nie eingerückt werden. Warum? Ich arbeite gerade in einem Code, der eine schreckliche Mischung aus #defines, #ifdefs, #elses, #endifs usw. enthält. All dies wird oft mit normalem C-Code gemischt. Das Nichteinrücken des #defines macht sie schwer lesbar. Und die Mischung aus eingerücktem Code mit …

12
C ++ - Präprozessor __VA_ARGS__ Anzahl der Argumente
Einfache Frage, auf die ich im Internet keine Antwort finden konnte. Wie kann man in Makros mit variablen Argumenten die Anzahl der Argumente ermitteln? Ich bin mit Boost-Präprozessor einverstanden, wenn er die Lösung hat. Wenn es einen Unterschied macht, versuche ich, eine variable Anzahl von Makroargumenten zu konvertieren, um die …


4
Pragma im Makro definieren
Gibt es eine Möglichkeit, Pragma-Anweisungen mit anderen Anweisungen in Makros einzubetten? Ich versuche etwas zu erreichen wie: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type Ich bin mit Boost-Lösungen (außer Wave) einverstanden, wenn es …

14
Kompilieren, Erstellen oder Archivieren von Problemen mit Xcode 4 (und Abhängigkeiten)
Diese Frage hat sich in den letzten Wochen weiterentwickelt, um allgemeinere Fragen zu behandeln xcode4 (und Upgrades von älteren Projekten xcodes). Viele der Probleme können jedoch durch Befolgen derselben Anweisungen gelöst werden. Wenn Sie eines der folgenden Probleme haben, probieren Sie die Methoden in der akzeptierten Antwort aus: Xcode 4 …

7
Warum nur ein Makro definieren, wenn es noch nicht definiert ist?
In unserer gesamten C-Code-Basis wird jedes Makro folgendermaßen definiert: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif Was ist der Grund für diese Definitionsprüfungen, anstatt nur die Makros zu definieren? #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #define …

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.