предупреждение: управление достигает конца не пустой функции - PullRequest
0 голосов
/ 25 августа 2011

У меня есть функция с именем

void *func(void *arg)
{
    ///does some operation
}

Теперь я получаю предупреждение компилятора о том, что «управление достигает конца функции, не являющейся void», хотя я объявляю тип возвращаемого значения как void *.

Может кто-нибудь сказать, пожалуйста, как исправить это предупреждение?

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

Тип возвращаемого значения - void *, это означает, что вы вернете указатель. Возможно, вы хотели ввести void, что означает, что вы ничего не вернете?

0 голосов
/ 25 августа 2011

Нам нужен весь код, чтобы по-настоящему увидеть, что происходит, но компилятор не может определить по этому коду, достигнет ли когда-нибудь функция конца и все равно что-нибудь вернет. Вы сказали, что он вернет указатель - void* - и ничего не вернули. Это не пустая функция, это void* функция. Компилятор ожидает от вас возврата void*, но вместо этого вы просто падаете в конец функции.

Вы также можете иметь бесконечный цикл while, который компилятор достаточно умен, чтобы знать, что функция не вернется, но это чисто предположение, потому что вы не опубликовали весь код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...