gpt4 book ai didi

c - 赋值从指针生成整数而没有强制转换警告

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:26 25 4
gpt4 key购买 nike

谁能解释为什么下面的代码会发出下面的警告以及如何补救?

warning: assignment makes integer from pointer without a cast [enabled by default]

代码如下:

int tcp_socket(void)
{
int s;

if ((s = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
_logf(LOG_DEBUG, "LOG %s:%d (%s) - %s", __FILE__, __LINE__, __func__, "Error creating socket");
return -1;
}
return s;
}

int main(int argc, char **argv)
{
int socket;
socket = tcp_socket;
if(socket == -1) {
_logf(LOG_INFO, "LOG %s:%d (%s) - %s", __FILE__, __LINE__, __func__, "Error creating socket, exiting...");
exit(-1);
}
}

最佳答案

更正这个:

socket = tcp_socket;

socket = tcp_socket();

tcp_socket()是一个函数调用,而tcp_socket是一个指向内存中函数位置的指针。

关于c - 赋值从指针生成整数而没有强制转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com