Ostrzeżenie kompilatora (poziom 4) C4702
niemożliwy do osiągnięcia kod
Gdy zaplecze kompilatora wykryje niemożliwy do osiągnięcia kod, generuje kod C4702 jako ostrzeżenie poziomu 4.
Aby rozwiązać ten problem, usuń nieosiągalny kod lub upewnij się, że cały kod źródłowy jest osiągalny przez jakiś przepływ wykonywania.
Przykłady
Poniższy przykład generuje C4702. Aby rozwiązać ten problem, usuń niemożliwy do osiągnięcia kod.
// C4702.cpp
// compile with: /W4
#include <stdio.h>
int main() {
return 1;
printf_s("I won't print.\n"); // C4702 unreachable
}
Błąd C4702 może wystąpić w niektórych wersjach kompilatora podczas kompilowania przy użyciu /GX
opcji , /EHc
, /EHsc
lub /EHac
i używania extern "C"
funkcji. Ponieważ kompilator zakłada, extern "C"
że funkcje nie są zwracane, blok catch nie jest osiągalny. Jeśli uważasz, że to ostrzeżenie nie jest prawidłowe, ponieważ funkcja może zgłaszać, kompilować z elementem /EHa
lub /EHs
, w zależności od zgłoszonych wyjątków.
Aby uzyskać więcej informacji, zobacz /EH
(Model obsługi wyjątków).
Poniższy przykład generuje 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
}
}