Как запустить __cplusplus (С++) #ifdef?

#ifdef __cplusplus
// C++ code
#else
// C code
#endif

Структура - это. Мой вопрос в том, как на самом деле запустить #ifdef on?

Я имею в виду, в программе? Какой код я могу написать #ifdef на?

Например, в этом случае. что

#define __cplusplus

включит его?

Ответ 1

"# define __cplusplus"

разрешит его?

Да, он "включит".

__cplusplus должен автоматически определяться компилятором С++. С++ использует другое название mangling и макрос, часто используемый для создания заголовков C, совместимых с С++:

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
}
#endif

Ответ 2

Просто скомпилируйте его с помощью компилятора С++ и __cplusplus автоматически определяется в этом случае.

Ответ 3

Стандарт С++ предусматривает, что __cplusplus всегда будет определен в программах на С++. Стандарт C, очевидно, нет. Это означает, что пользователю необходимо приложить все усилия, чтобы включить эту технику.

Ответ 4

Компилятор С++ определяет это автоматически.

Так как это начинается с двух последовательных символов подчеркивания, оно зарезервировано. Вы не можете сами определить его (т.е. Попытка сделать это дает поведение undefined).