/*
//i comment this block, please see the updates
void* fun_one(char *buffer, long length)
{
if(NULL == buffer)
return xxx; //return what value here
...
}
fun_two()
{
...
fun_one(image->buffer, image->length);
...
}
*/
Если произошла ошибка, я не надеюсь выйти из программы, но вернуться к fun_two()
. Что мне делать? Я знаю, что return (void *)0;
или return NULL;
при успешном завершении, но верните какое значение при ошибке?return what when error in void * fun()
ссылки, связанные: void *
обновление:
но что, если Ти функции нити, такие как
int main()
{
...
pthread_create(&id1, NULL, (void*)myThread1, ¶m_struct);
...
}
void* myThread1(void* param)
{
struct len_str* img = (struct len_str*)param;
if(NULL == img->buf)
return xxx; //return what value here
if(0 == img->len)
return xxx;
...
}
Ссылки по теме: pthread_create
т он вернется значение myThread1()
является void *
, какое значение должно вернуться, если ошибка происходит
Вы можете написать 'void * res = fun_one (...);' и проверить значение 'res'. – purplepsycho
Это зависит от вас. Почему вы хотите вернуть 'void *'. Я бы просто вернул «int». –
@MichaelWalz, но что, если это функция потока, такая как 'pthread_create (& id1, NULL, (void *) myThread1, NULL); ' – kgbook