Articles of preprocessore

Come creare una stringa di caratteri dal valore di una macro C?

Ad esempio, come evitare di scrivere il “nome_completo” due volte? #ifndef TEST_FUN # define TEST_FUN func_name # define TEST_FUN_NAME “func_name” #endif Mi piacerebbe seguire la regola Single Point of Truth . Versione del preprocessore C: $ cpp –version cpp (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)

Xcode 4 non è in grado di individuare i file di intestazione pubblici dalla dipendenza dalla libreria statica

Titoli alternativi per aiutare la ricerca Xcode non trova l’intestazione .H mancante in Xcode Xcode .h file non trovato file di rilascio lessicale o preprocessore non trovato Sto lavorando a un progetto di applicazione iOS che proviene da Xcode 3. Ora mi sono spostato su Xcode 4 il mio progetto crea un certo numero di […]

Convertire un token del preprocessore in una stringa

Sto cercando un modo per convertire un token del preprocessore in una stringa. In particolare, ho capito da qualche parte: #define MAX_LEN 16 e voglio usarlo per prevenire il sovraccarico del buffer: char val[MAX_LEN+1]; // room for \0 sscanf(buf, “%”MAX_LEN”s”, val); Sono aperto ad altri modi per realizzare la stessa cosa, ma solo la libreria […]

Preferisco che le costanti siano definite?

In C, preferisco che le costanti siano definite? Ultimamente ho letto molto codice e tutti gli esempi fanno un uso pesante di define.

Come confrontare stringhe in direttive condizionali del preprocessore C

Devo fare qualcosa di simile in C. Funziona solo se uso un carattere, ma ho bisogno di una stringa. Come posso fare questo? #define USER “jack” // jack or queen #if USER == “jack” #define USER_VS “queen” #elif USER == “queen” #define USER_VS “jack” #endif

Motore di visualizzazione del razor, come inserire il preprocessore (debug #if)

Oggi sto scrivendo la mia prima pagina di razor, non riesco a capire come inserire #if debug #else #endif Come posso inserire il preprocessore nel razor?

Possiamo avere macro ricorsive?

Voglio sapere se possiamo avere macro ricorsive in C / C ++? In caso affermativo, fornire un esempio di esempio. Seconda cosa: perché non riesco a eseguire il codice qui sotto? Qual è l’errore che sto facendo? È a causa delle macro ricorsive? # define pr(n) ((n==1)? 1 : pr(n-1)) void main () { int […]

# Preprocessore C ++ che definisce una parola chiave. È conforms agli standard?

Aiuta a risolvere il dibattito che sta succedendo nei commenti a questa domanda su bool e 1 : Un preprocessore C ++ conforms agli standard consente di utilizzare #define per ridefinire una parola chiave della lingua? In tal caso, è necessario un preprocessore C ++ conforms agli standard? Se un programma C ++ ridefinisce una […]

Macro vs Funzione in C

Ho sempre visto esempi e casi in cui l’utilizzo di una macro è migliore rispetto all’utilizzo della funzione. Qualcuno potrebbe spiegarmi con un esempio lo svantaggio di una macro rispetto ad una funzione?

In che modo, esattamente, funziona il trucco a doppia stringa?

Almeno alcuni preprocessori C ti permettono di stringere il valore di una macro, piuttosto che il suo nome, facendolo passare attraverso una macro simile a una funzione ad 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 utilizzo qui . Questo funziona, almeno […]