Le titre de la question devrait tout dire, mais voici un exemple de ce genre de chose que je cherche:Comment vérifier (via le préprocesseur) si un fichier source C est compilé en C++ Code
#ifndef THE_IDENTIFIER_THAT_WOULD_INDICATE_BEING_COMPILED_AS_CPLUSPLUS
/*
* Example of something that would matter.
*/
typedef enum _bool bool;
enum _bool { false, true };
#endif
Quel est l'identifiant? Cela m'inquiète sévèrement, car je sais que j'ai vu du code qui le fait avant. J'utilise GCC, d'ailleurs.
(je suis surpris que je ne pouvais pas trouver un doublon quelque part sur le SO. Si quelqu'un peut trouver autre un, ne hésitez pas à me réorienter et fermer cette dupe.)
Il est '__cplusplus'. La macro est définie par les compilateurs C++. Dupliqué de: http://stackoverflow.com/questions/3858308/using-c-preprocessor-to-determine-compilation-environment – birryree
btw: C99 a ajouté un type booléen natif appelé '_Bool', aliasé' bool' si vous incluez '' –
Christoph
Voir aussi [Directive du préprocesseur pour tester s'il s'agit d'un C ou C++] (http://stackoverflow.com/questions/12548490/preprocessor-directive-to-test-if-this-is-c-or-c) pour en apprendre plus sur 'extern 'C" 'et quelques façons de gérer. –