Błąd kompilatora C2733
nie można przeciążyć funkcji z połączeniem "C"
Więcej niż jedna przeciążona funkcja jest zadeklarowana z połączeniem extern "C"
. W przypadku używania "C"
połączenia tylko jedna forma określonej funkcji może być zewnętrzna. Ponieważ przeciążone funkcje mają taką samą nieukodowaną nazwę, nie mogą być używane z programami języka C.
Ten błąd może wystąpić po uaktualnieniu z powodu zmian zgodności w programie Visual Studio 2019. Począwszy od programu Visual Studio 2019 w wersji 16.3, /Zc:externC-
opcja kompilatora zrelaksuje tę kontrolę. Opcja musi pojawić się po dowolnej /permissive-
opcji w wierszu polecenia.
Przykład
Poniższy przykład generuje C2733:
// C2733.cpp
extern "C" {
void F1(int);
}
extern "C" {
void F1(); // C2733
// try the following line instead
// void F2();
}
Zobacz też
Błąd kompilatora C2116
extern
(C++)
/Zc:externC
(Użyj standardowych reguł języka C++ extern "C"
)