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#.
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
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
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,
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,
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,
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
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
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';
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
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
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 =
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
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
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
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
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
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
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
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 +
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
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
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
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
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
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
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
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
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,
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,
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
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;
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
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
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
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.
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
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
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) |=
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
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
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
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.
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
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
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
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
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
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
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
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