我正在查看一个 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);
}