Articles of c préprocesseur

Comment imprimer une constante définie dans GDB?

Selon le sujet. J’ai des constantes de hachage définies comme ceci: #define CONST 40 J’ai mis un point d’arrêt dans mon programme. Comment imprimer la valeur de cette constante? (Je sais que je peux juste regarder le code source, mais je veux en être sûr)

Peut-on avoir des macros récursives?

Je veux savoir si nous pouvons avoir des macros récursives en C / C ++? Si oui, veuillez fournir un exemple d’exemple. Deuxième chose: pourquoi ne puis-je pas exécuter le code ci-dessous? Quelle est l’erreur que je fais? Est-ce à cause de macros récursives? # define pr(n) ((n==1)? 1 : pr(n-1)) void main () { […]

Macros DEBUG en C ++

Je viens de rencontrer une macro DEBUG en C que j’aime beaucoup #ifdef DEBUG_BUILD # define DEBUG(x) fprintf(stderr, x) #else # define DEBUG(x) do {} while (0) #endif Je suppose qu’un analogue de C ++ serait: – #ifdef DEBUG_BUILD # define DEBUG(x) cerr << x #else # define DEBUG(x) do {} while (0) #endif Le […]

Dois-je préférer les constantes aux définitions?

En C, dois-je préférer les constantes aux définitions? J’ai lu beaucoup de code ces derniers temps et tous les exemples utilisent beaucoup les définitions.

Différence entre les énoncés Enum et Define

Quelle est la différence entre utiliser une instruction define et une instruction enum en C / C ++ (et existe-t-il une différence lors de leur utilisation avec C ou C ++)? Par exemple, quand faut-il utiliser enum {BUFFER = 1234}; plus de #define BUFFER 1234

Objective-C: déclaration de classe à terme

RootViewController une application RootViewController -vues qui utilise une classe appelée RootViewController pour basculer entre les vues. Dans mon en MyAppDelegate tête MyAppDelegate , je crée une instance de RootViewController appelée rootViewController . J’ai vu des exemples de tels cas où la directive @class est utilisée comme “déclaration de classe avancée”, mais je ne suis pas […]

Portabilité de la directive de préprocesseur #warning

Je sais que la directive #warning n’est pas la norme C / C ++, mais plusieurs compilateurs le supportent, y compris gcc / g ++. Mais pour ceux qui ne le supportent pas, vont-ils l’ignorer en silence ou cela va-t-il entraîner un échec de compilation? En d’autres termes, puis-je l’utiliser en toute sécurité dans mon […]

Espaces de noms en C

Y at-il un moyen de (ab) utiliser le préprocesseur C pour émuler les espaces de noms en C ? Je pense à quelque chose en ce sens: #define NAMESPACE name_of_ns some_function() { some_other_function(); } Cela serait traduit à: name_of_ns_some_function() { name_of_ns_some_other_function(); }

Définitions de macro C # dans le préprocesseur

C # est-il capable de définir des macros comme dans le langage de programmation C avec des instructions de pré-processeur? Je voudrais simplifier la saisie régulière de certaines instructions répétitives telles que les suivantes: Console.WriteLine(“foo”);

Comment détecter LLVM et sa version via les directives #define?

La question est assez claire je pense. J’essaie d’écrire un en-tête de détection du compilateur pour pouvoir inclure dans l’application des informations sur le compilateur utilisé et la version. Cela fait partie du code que j’utilise: /* GNU C Comstackr Detection */ #elif defined __GNUC__ #ifdef __MINGW32__ #define COMPILER “MinGW GCC %d.%d.%d” #else #define COMPILER […]