編譯器警告 (層級 4) C4702
無法連線的程式碼
當編譯器後端偵測到無法連線的程式碼時,它會產生 C4702 作為層級 4 警告。
若要解決此警告,請移除無法連線的程式碼,或確保某些執行流程可連線所有原始程式碼。
範例
下列範例會產生 C4702。 若要修正此問題,請移除無法連線的程式碼。
// C4702.cpp
// compile with: /W4
#include <stdio.h>
int main() {
return 1;
printf_s("I won't print.\n"); // C4702 unreachable
}
當您使用 /GX
、 /EHc
、 /EHsc
或 /EHac
選項 extern "C"
進行編譯並使用函式時,某些版本的編譯器可能會發生錯誤 C4702。 因為編譯器假設 extern "C"
函式不會擲回,因此無法連線 catch 區塊。 如果您認為此警告無效,因為函式可以根據擲回的例外狀況擲回、編譯 /EHa
或 /EHs
。
如需詳細資訊,請參閱 /EH
(例外狀況處理模型)。
下列範例會產生 C4702:
// C4702b.cpp
// compile with: /W4 /EHsc
#include <iostream>
using namespace std;
extern "C" __declspec(dllexport) void Function2(){}
int main() {
try {
Function2();
}
catch (...) {
cout << "Exp: Function2!" << endl; // C4702
}
}