Udostępnij za pośrednictwem


noreturn

Specyficzne dla firmy Microsoft

Atrybut __declspec informuje kompilator, że funkcja niczego nie zwraca.W konsekwencji, kompilator wie, że kod po wywołaniu funkcji __declspec(noreturn) jest nieosiągalny.

Jeśli kompilator znajdzie funkcję ze ścieżką kontroli, która nie zwraca wartości, generuje ostrzeżenie (C4715) lub komunikat o błędzie (C2202).Jeśli ze względu na funkcję nigdy nie zwracającą wartości nie można dotrzeć do ścieżki kontroli, można użyć __declspec(noreturn), aby zapobiec temu ostrzeżeniu lub błędowi.

[!UWAGA]

Dodawanie __declspec(noreturn) do funkcji, od której oczekiwane jest zwrócenie wartości, może spowodować niezdefiniowane zachowanie.

Przykład

W następującym przykładzie, klauzula else nie zawiera instrukcji return. Daklarowanie fatal jako __declspec(noreturn) pozwala uniknąć komunikatu błędu lub ostrzeżenia.

// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}

int main() {
   if(1)
     return 1;
   else if(0)
     return 0;
   else
     fatal();
}

Zobacz też

Informacje

__declspec

Słowa kluczowe języka C++