Condividi tramite


Errore del compilatore C2733

non è possibile eseguire l'overload di una funzione con collegamento 'C'

Più di una funzione di overload viene dichiarata con extern "C" collegamento. Quando si usa "C" il collegamento, solo una forma di una funzione specificata può essere esterna. Poiché le funzioni di overload hanno lo stesso nome non dichiarato, non possono essere usate con i programmi C.

Questo errore può verificarsi dopo un aggiornamento a causa di modifiche di conformità in Visual Studio 2019. A partire da Visual Studio 2019 versione 16.3, l'opzione del /Zc:externC- compilatore riduce questa verifica. L'opzione deve venire dopo qualsiasi /permissive- opzione nella riga di comando.

Esempio

L'esempio seguente genera l'errore C2733:

// C2733.cpp
extern "C" {
   void F1(int);
}

extern "C" {
   void F1();   // C2733
   // try the following line instead
   // void F2();
}

Vedi anche

Errore del compilatore C2116
extern (C++)
/Zc:externC (Usare le regole C++ extern "C" standard)