Экстерн “C” имеют какой-либо эффект в C?

Указывая, что строка не завершена, вы можете использовать \

from data.find_pending_records \
import FindPendingRecords

Вы также можете сделать отступ, чтобы сделать его более читабельным

from data.find_pending_records \
    import FindPendingRecords
14
задан Wolfgang 1 June 2016 в 18:28
поделиться

3 ответа

Нет, это не допустимый C. Это должно только использоваться в коде C++ для обращения к функциям, определяемым в коде C. extern "C" должен быть окружен в a ifdef __cplusplus/#endif блок:

// For one function
#ifdef __cplusplus
extern "C"
#endif
void func();

// For more than one function
#ifdef __cplusplus
extern "C"
{
#endif

void func1();
void func2();

#ifdef __cplusplus
}
#endif
30
ответ дан 1 December 2019 в 06:39
поделиться

это - нотация C++, чтобы сказать компилятору/компоновщику использовать C вызов стандартов.

Обычно та строка перенесена в оператор препроцессора.

#ifdef __cplusplus
extern "C" {
#endif

// stuff

#ifdef __cplusplus
}
#endif
12
ответ дан 1 December 2019 в 06:39
поделиться

Не допустимый в C. Если существующий после предварительной обработки этого приведет к диагностике согласно стандарту.

Для C++, это повороты искажения имени. Дополнительную информацию см. в этом относительно того, почему это может требоваться. Можно ли отправить еще некоторые детали?

2
ответ дан 1 December 2019 в 06:39
поделиться