我正在研究套接字编程。我的代码按照我想要的方式执行,我可以使用它。但它给了我一个关于编译的警告。
我编译使用
gcc server1.c -o server1 -lpthread
我得到了警告
warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
以下代码出现此错误
int newsockfd;
newsockfd = (int)newsockfdd; //this line
我在下面的代码块中使用了newsockfdd(它是int)
if (pthread_create(&threadID[i++], NULL, serverThread, (void *)(intptr_t)newsockfdd) != 0)
{
perror("Thread create error");
}
你可能会说,代码写得不太好(我正在努力让它变得更好)。我知道这个警告是因为与 int 的大小有关。但我真的不知道如何解决它。在我在 pthread_create 语句中输入 (intptr_t) 之前,它在该行显示了一个警告,但那个时候警告是
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
似乎应该有一个简单的解决方法?但我找不到它。我正在使用 Ubuntu 64 位。这是警告的原因吗?