Tag: c-preprocessor

Die macro-preprocessing-Schritt der C und C++ Programmiersprachen.
Dieser tag kann auch genutzt werden, um Fragen über andere Compiler/Sprachen abgeleitet aus oder haben die identischen Eigenschaften, wie die #Richtlinien in Objective-C oder C#.

Was ist der Unterschied zwischen globalen Variablen und #define in c

Anzahl der Antworten 4 Antworten
Was ist der Grund, warum es gibt 2 Möglichkeiten : Globale Variablen symbolische Konstanten mit #define ? Damit ich weiß, was #define tut, aber ich weiß nicht, was der Unterschied in der Nutzung ist. Die situation, die

So legen Sie fest, in C?

Anzahl der Antworten 2 Antworten
Ist es möglich zu schreiben #define definiert #define? Beispiel: #define FID_STRS(x) #x #define FID_STRE(x) FID_STRS(x) #define FID_DECL(n, v) static int FIDN_##n = v;static const char *FIDS_##n = FID_STRE(v) Sondern: #define FID_DECL2(n, v) #define FIDN_##n v \ FIDS_##n

Präprozessor-makro Erweiterung auf einen anderen Präprozessor-Direktive

Anzahl der Antworten 3 Antworten
Anfangs dachte ich, ich brauchte, aber schließlich bin ich es vermieden. Aber meine Neugier (und Appetit auf wissen, hum), lassen mich Fragen: Kann ein Präprozessor-makro, zum Beispiel in #include "MyClass.h" INSTANTIATE_FOO_TEMPLATE_CLASS(MyClass) erweitern Sie zu einem anderen gehören,

Über # # - Präprozessor in C

Anzahl der Antworten 3 Antworten
Gegeben #define cat(x,y) x##y Den Anruf cat(a,1) zurück a1, aber cat(cat(1,2),3) ist nicht definiert. Allerdings, wenn ich auch definieren #define xcat(x,y) cat(x,y), dann ist das Ergebnis von xcat(xcat(1,2),3) ist jetzt 123. Kann jemand bitte im detail erklären,

Wie kann ich bedingt aktivieren, werden die Attribute in C#? "#falls DEBUGGEN" funktioniert nicht

Anzahl der Antworten 5 Antworten
Den guten, alten Präprozessor-Direktive in C# scheinen gut zu funktionieren, wenn ich Schreibe: #if DEBUG ... (Some code) ... #endif Jedoch, Attribute eingeschlossen in den bedingten block erscheinen, um weiter verarbeitet zu werden, und ich bekomme Fehler,

Vorbei an den Aufrufer __DATEI__ __LINE__, um eine Funktion ohne Verwendung des makro -

Anzahl der Antworten 2 Antworten
Ich bin auf diese: class Db { _Commit(char *file, int line) { Log("Commit called from %s:%d", file, line); } }; #define Commit() _Commit(__FILE__, __LINE__) aber das große problem ist, dass ich definieren das Wort Commit weltweit, und

Token für "=" ist nicht gültig in Präprozessor-Ausdrücke

Anzahl der Antworten 3 Antworten
Diese Frage ist unwahrscheinlich, um zu helfen alle zukünftigen Besucher; es ist nur für einen kleinen geografischen Gebiet, einen bestimmten moment in der Zeit, oder eine außerordentlich engen situation, die nicht allgemein für das weltweite Publikum des

Wie definieren Sie makro mit parameter in PHP, wie es möglich ist in C++?

Anzahl der Antworten 4 Antworten
Ziel ist, etwas zu haben wie: #define sum( f1, f2 ) ( f1 + f2 ) wo sum(2,2) ist 4 in PHP. Ist das irgendwie möglich? Noch besser wäre es, wenn ich nennen könnte: $s = 'first';

Warum sollte man die Mühe mit der Präprozessor-Direktiven?

Anzahl der Antworten 13 Antworten
Diese Frage mag ziemlich einfach, aber aus technischer (nicht-informatik -) hintergrund, war ich mir unsicher über das, was die snippets von '#'s wurden in C++ - code. Eine schnelle Suche führte mich zu der prägnanten, gut erklärt

CPP: Vermeidung makro Erweiterung einer makro-Funktion-parameter

Anzahl der Antworten 4 Antworten
was ich gerne tun würde (für logging-Zwecke) ist so etwas wie dieses: Dieser code wurde geschrieben, um zu zeigen, mein problem, der eigentliche code ist Komplex und ja, ich habe gute Gründe für die Verwendung von Makros

C-Präprozessor - # und ## Operatoren

Anzahl der Antworten 1 Antworten
Den C99-standard-Dokument hat das folgende Beispiel, in dem Abschnitt über die ## preprocessing-Betreiber: Im folgenden fragment: #define hash_hash # ## # #define mkstr(a) # a #define in_between(a) mkstr(a) #define join(c, d) in_between(c hash_hash d) char p =

Erkennen-compiler mit #ifdef

Anzahl der Antworten 3 Antworten
Ich versuche zu bauen, ein kleiner code, der funktioniert auf mehreren Plattformen und Compiler. Ich benutze Behauptungen, von denen die meisten kann ausgeschaltet werden, aber beim kompilieren mit pgis pgicpp mit -mp für die OpenMP-Unterstützung, es verwendet

Hinzufügen von default-Argumente Variable makro

Anzahl der Antworten 3 Antworten
Ist es möglich, default-Argumente, bevor die variable argument in variadischen makro? e.g ich habe die version von makro-so etwas wie #define MACRO(arg1, ...) func(arg1, ##__VA_ARGS__) Möchte ich hinzufügen, 2 weitere Standard-Argumente in der makro vor der variable

Fehler-Logging-C++ - Präprozessor-Makros __LINE__, __FUNCTION__

Anzahl der Antworten 5 Antworten
Ich versuche zu integrieren, die eine einfache Fehler-Protokollierung in meine bestehende app, im moment meldet es Fehler, die nur mit cout also ich war in der Hoffnung zu halten, eine ähnliche Schnittstelle über die << Betreiber. Jedoch

Erkennen-ARM-NEON-Verfügbarkeit in der Präprozessor?

Anzahl der Antworten 1 Antworten
Entsprechend der ARM ARM, __ARM_NEON__ definiert ist, wenn die Neon-SIMD-Befehle sind verfügbar. Ich bin mit Mühe GCC zur Verfügung stellen. Neon auf dieser BananaPi Pro dev board, auf dem Debian 8.2: $ cat /proc/cpuinfo | grep neon

#definieren Sie die URL als string in jedem .m-Datei?

Anzahl der Antworten 2 Antworten
Ich bin immer noch versuchen zu lernen Objective-C und app-downloads-Dokumente von einem web-server. Die Dokumente sind in zehn vordefinierte Ordner und ich haben getrennte Klassen für jede Kategorie Dem ich Zugriff auf die Dateien aktuell ist, an

Undef ' Ing ein function-like makro

Anzahl der Antworten 2 Antworten
In der C/C++ gibt es 2 Arten von Makros: #define ABC /* usual */ und #define FUNC(a) /*function-like*/ Aber wie kann ich das löschen Ihnen? Update: es gibt Also keinen Unterschied zwischen undefing "konstant-wie makro -" und

Erzeugende Funktion Erklärung mit Hilfe eines makro-iteration

Anzahl der Antworten 2 Antworten
Ich versuche zu generieren, die Funktionsdeklaration mit einem makro /* goal: generate int f(int a, float b) */ template<typename P> struct ptype; template<typename P> struct ptype<void(P)> { typedef P type; }; #define NAMEe #define COMMAe #define COMMA

Bit-count : Präprozessor-Magie vs moderne C++

Anzahl der Antworten 3 Antworten
Nehme an, dass ich zum erstellen eines compile-Zeit konstruiert bit-count-lookup-Tabelle für 64-bit-Ganzzahlen, 16 bit-Blöcken. Ich weiß nur einen Weg, dies zu tun ist den folgenden code: #define B4(n) n, n + 1, n + 1, n +

Makro überladen

Anzahl der Antworten 1 Antworten
Ist es möglich zu definieren, so etwas wie dieses: #define FOO(x, y) BAR() #define FOO(x, sth, y) BAR(sth) so, dass diese: FOO("daf", sfdas); FOO("fdsfs", something, 5); übersetzt wird dies: BAR(); BAR(something); ? Bearbeiten: Eigentlich BAR's sind die

Was ist die Entsprechung von `cpp -dD " für clang?

Anzahl der Antworten 2 Antworten
Wenn ich herausfinden will, was implizit Präprozessor definiert gcc gibt mir, ich kann geben echo "" | cpp -dD. Weiß jemand, was das äquivalent für das Geräusch ist? gcc -dD -E - zu geben scheint die gleiche

Invalid preprocessing directive for #elseifdef in Xcode

Anzahl der Antworten 2 Antworten
Warum: #ifdef SOME_TARGET_FLAG <some code here> #elseifdef SOME_ANOTHER_TARGET_FLAG <some another code here> #endif produziert "Invalid preprocessing directive" Vorverarbeiten Kompilierungsfehler? SOME_TARGET_FLAG und SOME_ANOTHER_TARGET_FLAG sind nur einige "Other C flags" definiert, bei der Ziel-build-Einstellungen (-D<FLAG_NAME> Muster). Ist #elseifdef Richtlinie

MSVC++ variadischen makro-expansion

Anzahl der Antworten 2 Antworten
Also ich hab ein makro, das funktioniert gut in GCC, aber nicht in Microsoft C++ Compiler. Ich hoffe jemand weiß vielleicht eine Abhilfe, oder vielleicht können Sie mir erklären, warum es auf diese Weise verhält. Ich bin

offsetof zur compile-Zeit

Anzahl der Antworten 3 Antworten
Gibt es einen Weg zu finden, den offset von einem Mitglied einer Struktur zur compile-Zeit? Ich möchte erstellen Sie eine Konstante mit dem offset ein Struktur-member. Im folgenden code die offsetof() makro funktioniert in den ersten printf

C++ #ifndef für include-Dateien, warum ist all caps verwendet, für die header-Datei?

Anzahl der Antworten 7 Antworten
Frage ich mich, warum den Namen nach der #ifndef Richtlinie ist immer alle Kappen und scheinen nicht zu passen der name der header-Datei? Was sind die Regeln rund um diese? Ich habe auf der Suche um die

C pre-Prozessor-makro-expansion

Anzahl der Antworten 1 Antworten
Ich versuche zu tun (was ich gedacht hätte), war eine einfache makro-expansion #define CLEAR_DIGIT(a,b) iconMap[a] &= ~(b) #define R1 4, 16 CLEAR_DIGIT(R1); Nun würde ich erwarten, dass zu erweitern, um CLEAR_DIGIT(4,16), die erweitert, um iconMap[4] &= ~16

C++ - Code Generation

Anzahl der Antworten 6 Antworten
In meine epic quest zu machen C++ Dinge tun sollte es nicht, ich bin versucht, zusammen eine compile-Zeit generiert. Klasse. Basiert auf einem Präprozessor-definition, wie (grob-Konzept) CLASS_BEGIN(Name) RECORD(xyz) RECORD(abc) RECORD_GROUP(GroupName) RECORD_GROUP_RECORD(foo) RECORD_GROUP_RECORD(bar) END_RECORDGROUP END_CLASS Während ich bin

Laufen nur C-Präprozessor in cmake?

Anzahl der Antworten 3 Antworten
Ich versuche, cmake zur Vereinfachung der Weitergabe meiner OpenCL-Programm. Ich habe eine kernel-Datei, die mehrere Kopf-und anderen source-Dateien, und ich möchte eine einzelne, selbst enthaltenen ausführbaren. Mein plan ist, cmake laufen die C Präprozessor auf die kernel-Quelle,

MSBuild-C++ - Kommandozeilen - passieren kann definiert?

Anzahl der Antworten 2 Antworten
Gibt es einen Weg, um zu konvertieren, so etwas wie dieses: #define ERROR_LOG_LEVEL 5 In etwas, das msbuild über die Kommandozeile übergeben wird, um seine Projekte? msbuild.exe {???}ERROR_LOG_LEVEL=5 target Ich habe gelesen, die Antworten auf ähnliche Fragen,

Was bedeutet #Zeile bedeuten?

Anzahl der Antworten 7 Antworten
Was bedeutet die folgende Zeile tun? #line 25 "CSSGrammar.y" Und was ist mit der Erweiterung? Nur aus Neugier... Welchen compiler ist das Essen? Ich bin mit MSVS2008. es ist Teil des standard Ich bin sicher, dies ist

Die Iteration Von Variadischen Makro-Argumente

Anzahl der Antworten 2 Antworten
Ich bin programmgesteuert generieren Bündel von funktoren, um den erzeugten code besser lesbar, ich versuche zu kommen mit einem makro erweitern Sie Linie die folgenden, SET_STATE(FunctorA,a,b); ref a; ref b; FunctorA(ref a, ref b){ this->a = a;

Ausführen von Präprozessor nur aber nur für bestimmte Aussagen

Anzahl der Antworten 5 Antworten
Habe ich eine Reihe von debug-Anweisungen definiert, in einem Programm, und ich möchte in der Lage sein, um eine Kopie von der Quelle, ohne diese Aussagen. Damit zu tun das ich zum ersten mal sah GCC -E

Konvertieren einer #definierten Konstanten Zahl zu einem string

Anzahl der Antworten 1 Antworten
Habe ich eine Konstante definiert: #define MAX_STR_LEN 100 Ich versuche, dies zu tun: scanf("%" MAX_STR_LEN "s", p_buf); Aber natürlich nicht funktioniert. Was Präprozessor-trick verwenden können, um zu konvertieren der MAX_STR_LEN numerica in einen string damit ich Sie

Kann ich pass ein Präprozessor-definition der Ressourcen-compiler über die Kommandozeile?

Anzahl der Antworten 3 Antworten
Ich bin versucht derzeit, wechseln Sie zwischen ein paar verschiedene Standard-Icons in einer Visual C++ .rc-Datei mit #ifdef - tags. Baut die Umschaltung der #define-Wert erstellt werden über die Befehlszeile mithilfe von MSBuild. Die Schwierigkeit, die ich

Ist #define gebannt Industrie-standards?

Anzahl der Antworten 13 Antworten
Ich bin das erste Jahr informatik-student und mein professor sagte #define ist verboten, die in den standards zusammen mit #if, #ifdef, #else, und ein paar andere Präprozessor-Direktiven. Er verwendet das Wort "verboten", weil es zu unerwartetem Verhalten.

Vorkompilierte Header? Tun wir wirklich brauchen

Anzahl der Antworten 7 Antworten
Zurück, vor langer Zeit, die ich verwendet, um die pre-compiled Header: ein. um die Kompilierung zu beschleunigen und b. weil ich unterstützt mehrere Entwicklungs-tools wie CodeWarrior, MPW, VS, ProjectBuilder, gcc, intel-Compiler, etc, etc. Nun ich habe einen

C-Präprozessor - #if-Ausdruck

Anzahl der Antworten 4 Antworten
Ich bin ein bisschen verwirrt über die Art des Ausdrucks können wir die Verwendung mit der #IF-Präprozessor in die C-Sprache. Ich habe versucht den folgenden code, und es funktioniert nicht. Bitte erklären Sie und geben Sie Beispiele

C-Makro-Token Verkettung mit einer Variablen - ist es möglich?

Anzahl der Antworten 4 Antworten
Ich versuche zu definieren, die ein makro zum generieren eines token-Namen, enthält eine variable. Im Grunde, was ich versuche, ist dies: #define GLUER(x,y,z) x##y##z #define PxDIR(x) GLUER(P,x,DIR) int main() { int port; port = 2; PxDIR(port) |=

Mehrere Präprozessor-Direktiven in einer Zeile in C++

Anzahl der Antworten 2 Antworten
Eine hypothetische Frage: Ist es möglich, ein C++ - Programm, das Präprozessor-Direktiven, die ganz auf einer Linie? Solche Zeile würde wie folgt Aussehen: #define foo #ifdef foo #define bar #endif Welche die Semantik einer Zeile? Weiter, gibt

#define makro für debug-drucken in C?

Anzahl der Antworten 12 Antworten
Versucht ein makro zu erstellen, die verwendet werden können für print-debug-Meldungen, wenn DEBUG definiert ist, wie der folgende pseudo-code: #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args) Wie wird das erreicht mit einem makro? Wird

C-Makro - Dynamik #include

Anzahl der Antworten 5 Antworten
Ich versuche, herauszufinden, wie man eine string-variable für die #include-Anweisung mit GCC. Die Idee ist, dass für jede Quelle-Modul habe ich auch geschrieben, ich soll einen Kopf, einen dynamisch generierten C Quelle, die zuvor erstellt wurde, in

Äquivalent zu #define in Java?

Anzahl der Antworten 13 Antworten
Ich Schreibe eine library, die muss einen code aus, wenn eine bestimmte Bibliothek enthalten ist. Da dieser code verstreut rund um das Projekt, es wäre schön, wenn die Benutzer nicht haben, um zu kommentieren/kommentieren Sie alles selbst.

#define mit Platz

Anzahl der Antworten 6 Antworten
Ist es möglich, zu schreiben, definieren Sie Räume wie: #define replace to replacement here Möchte ich ersetzen "ersetzen" mit "Ersatz hier". EDIT: Möchte ich test private Mitglieder: Geschrieben habe ich #define private public aber es funktionierte nicht

Können Makros überlastet werden durch die Anzahl der Argumente?

Anzahl der Antworten 5 Antworten
Wie funktioniert diese Arbeit? Wie kann ein C99/C++11 variadic Makros realisiert werden zu erweitern, um verschiedene Dinge, die allein auf der Grundlage, wie viele Argumente gegeben werden? Nicht beantworten wie es funktioniert, aber wenn es jemand braucht

Mit Definitionen in C-Header-Dateien?

Anzahl der Antworten 3 Antworten
Ich bin derzeit lernen die C Programmiersprache (aus Java) und ich bin ein bisschen verwirrt, wie definieren Sie ein makro. Damit anderen code, um das makro zu verwenden, die header-Datei muss es haben. Aber wenn ich definieren

Drucken name und Wert einer makro -

Anzahl der Antworten 11 Antworten
Ich habe ein C Programm mit einer Menge von Optimierungen, die aktiviert oder deaktiviert werden können mit #defines. Wenn ich mein Programm, ich würde gerne wissen, was Makros wurden definiert zur compile-Zeit. So, ich bin versucht zu

Wie kann ich doxygen Dokumentation von #defines in eine C-Datei?

Anzahl der Antworten 7 Antworten
Habe ich #define Werte im Header, ich will unbedingt Doxygen zu dokumentieren, aber ich habe andere in C Dateien, die ich behandeln, als statische Konstanten, und ich will nicht Doxygen zu dokumentieren. Etwas, das so einfach und

Gehören OpenGL-Bibliotheken in C++, Windows 7

Anzahl der Antworten 1 Antworten
Lese ich über ein "Erste Schritte mit OpenGL" - tutorial, und ich stieß auf diesen text: "Wenn du mit C/C++, dann müssen Sie zuerst einrichten einer build-Umgebung (Visual Studio-Projekt, GNU makefile, CMake-file, etc), die über einen link

Wie definieren Sie eine statische matrix mit #define in C?

Anzahl der Antworten 1 Antworten
In der Richtlinie #define können Sie definieren eine statische array ist, aber ich konnte nicht verstehen, wie können Sie definieren eine statische matrix?. Ich möchte erstellen Sie eine Bibliothek von statischen Matrizen. Kann mir jemand helfen? Bitte

C-Präprozessor-makro-Spezialisierung basiert auf einem argument

Anzahl der Antworten 7 Antworten
Ist es möglich, ein makro erweitert, anders für eine bestimmte argument-Wert und anders für alle anderen Argumente? Sagen, ich definiere ein Aktueller Benutzer: #define CURRENT_USER john_smith Was ich im Stande sein will zu tun ist, um ein