ExpertiDict

C++ · Intermediário · Inglês · Técnico

extern C

ɪkˈstɝːn siːpalavra-chave

Especificador de ligação, escrito extern "C", que faz o compilador de C++ usar a convenção de nomes de C para uma função. Permite chamar e ser chamado por código C.

Onde usar

Aparece em headers de bibliotecas C e em plugins, protegido por #ifdef __cplusplus. Sem isso, o linker procura o nome com name mangling de C++ e acusa undefined reference.

Em código

#ifdef __cplusplus
extern "C" {
#endif
int soma(int a, int b);
#ifdef __cplusplus
}
#endif

Exemplos

Wrap the declarations in extern C so C can call them.

Embrulhe as declarações em extern C para o C poder chamá-las.

Without extern C, the linker can't find the symbol.

Sem extern C, o linker não acha o símbolo.

Cuidado

Só vale para a ligação do nome; não faz o código dentro virar C, e duas sobrecargas não podem ser extern C ao mesmo tempo.

Sinônimos

ligação C

Veja também

Todos os termos de C++