Что такое __cplusplus?

Рейтинг: 4Ответов: 1Опубликовано: 27.06.2011

Сделано вопросом из ответа в теме: Подключение DLL к проекту С++ (@ХэшКод)

А что такое __cplusplus (по идее именованная константа), а где она изначально задаётся? И два знака подчёркивания для чего обычно используются? Один знак подчёркивания, как мне известно, ставится, чтобы показать сишную функцию?

Дополнено.

И ещё, почему разработчики не потрудились задифайнить:

1) LPSTR
2) LPTSTR
3) DWORD
4) PDWORD

полагаю,

1) #define LPSTR char *
2) ???
3) #define DWORD unsigned long
4) #define PDWORD DWORD*

Я прав? А что будет во 2 пункте?

Ответы

▲ 8Принят

__cplusplus это макрос, который задаётся компилятором. Макрос объявлен, если работает C++ компилятор, и не объявлен, если простой С.

Обычно это используется, чтобы вставлять конструкцию extern "C". Например, так

#ifdef __cplusplus
extern "C" {
#endif

void myfunction() {}

#ifdef __cplusplus
}
#endif