void函数返回(NULL)

时间:2013-01-19 22:54:02

标签: c

我正在查看C客户端 - 服务器程序并遇到此问题。编译器抱怨函数“返回值,函数返回void”。

我的问题是,返回(NULL)与简单返回相比有什么意义?这可能是为了避免来电者回垃圾吗?

void *ThreadMain(void *threadArgs)
{
    int clntSock;                   /* Socket descriptor for client connection */

    /* Guarantees that thread resources are deallocated upon return */
    pthread_detach(pthread_self()); 

    /* Extract socket file descriptor from argument */
    clntSock = ((struct ThreadArgs *) threadArgs) -> clntSock;
    free(threadArgs);              /* Deallocate memory for argument */

    HandleTCPClient(clntSock);

    return (NULL);
}

3 个答案:

答案 0 :(得分:2)

 "return with a value, in function returning void".

你有一些其他函数有一个返回类型void,你从该函数返回一个值。但是您发布的功能不是那个功能。基本上你发布的功能与你的问题无关:)

您发布的回复类型void *void不同。所以这不是编译器抱怨的功能。查看代码中返回void(而不是void *)的其他函数,并在一个(或多个)函数中返回。

答案 1 :(得分:0)

返回NULL的原因是返回指向“nothing”的指针。

答案 2 :(得分:0)

他正在返回NULL,因为“合同”说他必须返回一个指针,他显然不能/不想改变合同。