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 …
Ich versuche herauszufinden, wie ich mit dem C- Präprozessor ein #define'd int mit einem #define' d-String verketten kann . Mein Compiler ist GCC 4.1 unter CentOS 5. Die Lösung sollte auch für MinGW funktionieren. Ich möchte eine Versionsnummer an eine Zeichenfolge anhängen, aber die einzige Möglichkeit, sie zum Laufen zu …
Wie in vielen meiner vorherigen Fragen erwähnt, arbeite ich über K & R und bin derzeit im Präprozessor. Eines der interessanteren Dinge - etwas, das ich bei keinem meiner früheren Versuche, C zu lernen, zuvor gekannt habe - ist der ##Präprozessor-Operator. Laut K & R: Der Präprozessoroperator ## bietet eine …
Mit mindestens einigen C- Präprozessoren können Sie den Wert eines Makros anstelle seines Namens stringisieren, indem Sie es über ein funktionsähnliches Makro an ein anderes übergeben, das es stringiert: #define STR1(x) #x #define STR2(x) STR1(x) #define THE_ANSWER 42 #define THE_ANSWER_STR STR2(THE_ANSWER) /* "42" */ Beispielanwendungsfälle hier . Dies funktioniert zumindest …
Ich suche nach einer Möglichkeit, ein Präprozessor-Token in eine Zeichenfolge zu konvertieren. Insbesondere habe ich irgendwo: #define MAX_LEN 16 und ich möchte es verwenden, um ein Überlaufen des Puffers zu verhindern: char val[MAX_LEN+1]; // room for \0 sscanf(buf, "%"MAX_LEN"s", val); Ich bin offen für andere Wege, um das Gleiche zu …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.