Domande taggate «c-preprocessor»

Un macro processore testuale applicato prima di compilare programmi in linguaggio C e C ++. Questo tag può essere utilizzato anche per domande su altri compilatori / linguaggi derivati ​​da o che hanno caratteristiche identiche, come #directives in Objective-C o C #.

19
#ifdef vs #if - qual è il metodo migliore / più sicuro per abilitare / disabilitare la compilazione di particolari sezioni di codice?
Potrebbe essere una questione di stile, ma c'è un po 'di divario nel nostro team di sviluppo e mi chiedevo se qualcun altro avesse qualche idea in merito ... Fondamentalmente, abbiamo alcune istruzioni di stampa di debug che disattiviamo durante il normale sviluppo. Personalmente preferisco fare quanto segue: //---- SomeSourceFile.cpp …

3
Quale macro predefinita posso utilizzare per rilevare il clang?
Sto cercando di rilevare il compilatore utilizzato per compilare il mio codice sorgente. Riesco a trovare facilmente macro predefinite per verificare la presenza di MSVC o GCC (vedi http://predef.sourceforge.net/ per esempio), ma non riesco a trovare alcuna macro per verificare il clang. Qualcuno sa se clang definisce una macro come …


10
Numero di riga C / C ++
Per motivi di debug, posso ottenere il numero di riga nei compilatori C / C ++? (modalità standard o modalità specifiche per alcuni compilatori) per esempio if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic compilation)


7
Virgola nella macro C / C ++
Supponiamo di avere una macro come questa #define FOO(type,name) type name Quale potremmo usare come FOO(int, int_var); Ma non sempre così semplicemente: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Ovviamente potremmo fare: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK che non è …
103 c++  c  macros  c-preprocessor 

11
Macro vs funzione in C
Ho sempre visto esempi e casi in cui usare una macro è meglio che usare la funzione. Qualcuno potrebbe spiegarmi con un esempio lo svantaggio di una macro rispetto ad una funzione?

8
Come definire un simbolo del preprocessore in Xcode
È possibile impostare un simbolo per la compilazione condizionale impostando le proprietà in un progetto Xcode? Il mio scopo è creare un simbolo che sia disponibile per tutti i file, senza dover usare import / include, in modo che un insieme di classi comuni possa avere un comportamento speciale in …

4
Il ruolo di #ifdef e #ifndef
#define one 0 #ifdef one printf("one is defined "); #ifndef one printf("one is not defined "); In questo qual è il ruolo di #ifdefe #ifndef, e qual è l'output?

8
Rientro #define
So che le #defines, ecc. Normalmente non sono mai rientrate. Perché? Al momento sto lavorando su un codice che ha un'orribile miscela di #defines, #ifdefs, #elses, #endifs, ecc. Tutti questi spesso sono mescolati con il normale codice C. La mancata rientranza della #defines li rende difficili da leggere. E la …

12
Preprocessore C ++ __VA_ARGS__ numero di argomenti
Domanda semplice per la quale non ho trovato risposta in rete. Nelle macro di argomenti variadici, come trovare il numero di argomenti? Sto bene con il preprocessore boost, se ha la soluzione. Se fa la differenza, sto cercando di convertire un numero variabile di argomenti macro per potenziare la sequenza, …


4
Pragma nella definizione macro
C'è un modo per incorporare l'istruzione pragma nella macro con altre istruzioni? Sto cercando di ottenere qualcosa come: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type Sono d'accordo con le soluzioni boost (salvo per …


7
Perché definire una macro solo se non è già definita?
In tutta la nostra base di codice C, vedo ogni macro definita nel modo seguente: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif Qual è la logica di eseguire questi controlli di definizione invece …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.