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 #.






2
Come funziona esattamente il trucco della doppia stringa?
Almeno alcuni preprocessori C consentono di stringere il valore di una macro, piuttosto che il suo nome, facendolo passare attraverso una macro simile a una funzione a un'altra che lo stringa: #define STR1(x) #x #define STR2(x) STR1(x) #define THE_ANSWER 42 #define THE_ANSWER_STR STR2(THE_ANSWER) /* "42" */ Esempi di casi d'uso …

4
Confronto macro if-direttiva
Perché è #ifsoddisfatta la condizione nel seguente codice: #include <iostream> #define VALUE foo int main() { #if VALUE == bar std::cout << "WORKS!" << std::endl; #endif // VALUE }

5
Contare le righe del file di origine utilizzando le macro?
È possibile, usando il preprocessore C / C ++, contare le righe all'interno di un file sorgente, in una macro o in qualche valore di tempo di compilazione disponibile? Ad esempio, posso sostituire MAGIC1, MAGIC2e MAGIC3di seguito, e ottenere il valore 4 in qualche modo durante l'utilizzo MAGIC3? MAGIC1 // …
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.