Udostępnij za pomocą


Ostrzeżenie kompilatora (poziom 1) C4715

"function": nie wszystkie ścieżki sterujące zwracają wartość

Uwagi

Określona funkcja może potencjalnie nie zwracać wartości.

Przykład

Poniższy przykład generuje C4715:

// C4715a.cpp
// compile with: /W1 /LD
int func1( int i )
{
   if( i )
   return 3;  // C4715 warning, nothing returned if i == 0
}

Aby zapobiec temu ostrzeżeniu, zmodyfikuj kod tak, aby wszystkie ścieżki przypisywać wartość zwracaną do funkcji:

// C4715b.cpp
// compile with: /LD
int func1( int i )
{
   if( i ) return 3;
   else return 0;     // OK, always returns a value
}

Istnieje możliwość, że kod może zawierać wywołanie funkcji, która nigdy nie zwraca, jak pokazano w poniższym przykładzie:

// C4715c.cpp
// compile with: /W1 /LD
void fatal()
{
}
int glue()
{
   if(0)
      return 1;
   else if(0)
      return 0;
   else
      fatal();   // C4715
}

Ten kod generuje również ostrzeżenie, ponieważ kompilator nie wie, że fatal nigdy nie zwraca. Aby zapobiec generowaniu komunikatu o błędzie w tym kodzie, zadeklaruj fatal przy użyciu __declspec(noreturn).