In una delle risposte a questa domanda jalf ha parlato di utile definire NOMINMAX , che potrebbe impedire di definire macro min / max indesiderate. Ci sono altre utili definizioni che possono aiutare a controllare windows.h (o altre intestazioni di Windows, ad esempio le intestazioni di Microsoft C Runtime o l’implementazione STL)?
Voglio controllare l’output del preprocessore per alcuni file. Come posso visualizzare l’output del preprocessore in Xcode?
Se scrivo un #define che esegue un’operazione utilizzando altre costanti del preprocessore, il valore finale viene calcolato ogni volta che la macro appare in fase di runtime? Questo dipende dalle ottimizzazioni nel compilatore o è coperto da uno standard? Esempio: #define EXTERNAL_CLOCK_FREQUENCY 32768 #define TIMER_1_S EXTERNAL_CLOCK_FREQUENCY #define TIMER_100_MS TIMERB_1_S / 10 L’operazione 32768/10 si verificherà […]
Come da sobject Ho un hash di costanti definito in questo modo: #define CONST 40 Ho impostato un punto di interruzione nel mio programma. Come posso stampare il valore di quella costante? (So che posso solo guardare il codice sorgente, ma voglio esserne sicuro)
Nella parte superiore del mio file che ho #define AGE “42” Più avanti nel file uso ID più volte includendo alcune linee che sembrano 1 std::string name = “Obama”; 2 std::string str = “Hello ” + name + ” you are ” + AGE + ” years old!”; 3 str += “Do you feel ” […]
Per i debugbuild, di solito uso Clang, in quanto formatta meglio avvisi e errori, e rende un po ‘più facile rintracciarli e correggerli. Ma recentemente dopo aver aggiunto una macro con argomenti variadici, Clang mi ha detto quanto segue (da un progetto fittizio): main.cpp:5:20: warning: named variadic macros are a GNU extension [-Wvariadic-macros] #define stuff3(args…) […]
Come scrivo una macro cpp che si espande per includere le newline?
Qual è la differenza tra l’uso di una dichiarazione define e di una dichiarazione enum in C / C ++ (e c’è qualche differenza quando li usi con C o C ++)? Ad esempio, quando si dovrebbe usare enum {BUFFER = 1234}; al di sopra di #define BUFFER 1234
È ansible creare un operatore personalizzato in modo da poter fare cose come questa? if (“Hello, world!” contains “Hello”) … Nota: questa è una domanda separata da “È una buona idea per …”;)
Vorrei dichiarare le stringhe shader GLSL in linea usando la stringificazione delle macro: #define STRINGIFY(A) #A const GLchar* vert = STRINGIFY( #version 120\n attribute vec2 position; void main() { gl_Position = vec4( position, 0.0, 1.0 ); } ); Questo costruisce e funziona bene con VS2010 ma non riesce a compilare su gcc con: error: invalid […]