Par exemple, comment éviter d’écrire deux fois le ‘func_name’? #ifndef TEST_FUN # define TEST_FUN func_name # define TEST_FUN_NAME “func_name” #endif J’aimerais suivre la règle du sharepoint vérité unique. Version du préprocesseur C: $ cpp –version cpp (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)
Dans une autre question, je viens de repérer cette petite perle de sagesse C : #define for if (false) {} else for ce qui a provoqué MSVC à cracher des avertissements “expression constante” pour une déclaration tout à fait valide: for (int i = 0; i <= 10; i++) {…} Je comprends pourquoi MSVC se […]
Si vous avez du code où je voudrais utiliser les extensions C ++ 11x autant que possible, mais si elles ne sont pas sockets en charge Actuellement, la version OSX de GCC et le compilateur VisualC ont peu ou pas de support pour C ++ 11x, donc j’utilise: #if (defined(__APPLE__) || (defined(_WIN32))) …fallback code without […]
Je cherche un moyen de convertir un jeton de préprocesseur en chaîne. Plus précisément, j’ai quelque part: #define MAX_LEN 16 et je veux l’utiliser pour empêcher le dépassement de tampon: char val[MAX_LEN+1]; // room for \0 sscanf(buf, “%”MAX_LEN”s”, val); Je suis ouvert à d’autres façons d’accomplir la même chose, mais la bibliothèque standard uniquement.
Comment faire une macro multiprocesseur? Je sais comment faire une ligne: #define sqr(X) (X*X) mais j’ai besoin de quelque chose comme ça: #define someMacro(X) class X : public otherClass { int foo; void doFoo(); }; Comment puis-je faire fonctionner ceci? Ceci n’est qu’un exemple, la vraie macro peut être très longue.
J’essaie d’écrire quelque chose comme ceci: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif Est-il possible de définir COV_ON comme ceci? Je sais que ce que j’ai fait ci-dessus est faux car je ne peux pas avoir #ifdef dans #define. ( # n’est pas un caractère autorisé dans #define ). Alors, y a-t-il […]
Existe-t-il une macro de préprocesseur qui me permettra de savoir que ndk comstack mon code? Je pourrais définir manuellement les miens, mais je préfère pas si possible.
J’ai une sélection de #defines dans un en-tête modifiable par l’utilisateur et je souhaite par conséquent vérifier que les définitions existent dans le cas où un utilisateur les supprime complètement, par exemple #if defined MANUF && defined SERIAL && defined MODEL // All defined OK so do nothing #else #error “User is stoopid!” #endif Cela […]
Je me demande s’il est possible d’avoir un préprocesseur OR ou une déclaration AND? J’ai ce code où je veux exécuter sous les _DEBUG ou _UNIT_TEST (?). Ce que je veux, c’est quelque chose comme ceci: #if _DEBUG || _UNIT_TEST //Code here #endif Si ce n’est pas possible, existe-t-il une solution pour obtenir la même […]
Mon préprocesseur semble supposer que les constantes indéfinies sont 0 pour évaluer les conditions #if . Peut-on s’y fier, ou des constantes non définies donnent-elles un comportement indéfini?