Articles of c preprocessore

Come domare le intestazioni di Windows (utile definisce)?

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)?

Uscita del preprocessore Xcode

Voglio controllare l’output del preprocessore per alcuni file. Come posso visualizzare l’output del preprocessore in Xcode?

Le espressioni C costanti vengono valutate in fase di compilazione o in fase di esecuzione?

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 posso stampare una costante # definita in GDB?

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)

Errore: operandi non validi dei tipi ‘const char ‘ e ‘const char ‘ per binario ‘operator +’

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 ” […]

Le macro Variadic non sono standard?

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 generare una nuova riga in una macro cpp?

Come scrivo una macro cpp che si espande per includere le newline?

Differenza tra Enum e Definisci dichiarazioni

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

Puoi creare operatori personalizzati in C ++?

È 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 …”;)

GCC, stringificazione e GLSL in linea?

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 […]