c - 未声明的变量

标签 c linux sockets

我正在尝试创建套接字,我应该描述一些结构:

(struct in_addr) addr;
addr.s_addr = INADDR_ANY;

我还包含了标题

#include <sys/socket.h>
#include <sys/types.h>

但是gcc说有错误:

error: ‘addr’ undeclared (first use in this function)

我做错了什么?

最佳答案

要声明一个新的 in_addr 结构,您需要删除这些括号:

struct in_addr addr;
addr.s_addr = INADDR_ANY;

你现在拥有的是一个转换,这意味着(大约)“假设 addr 已经是其他类型的声明变量,尝试将它转换为 struct in_addr ”。

关于c - 未声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161216/

相关文章:

c++ - 将 float 转换为 unsigned short 时出现舍入问题

linux - 有没有办法让 Linux 内核重新运行它的 PCI 初始化代码?

Python 套接字服务器/客户端编程

java - 将Java Socket配置为在断开连接时快速失败?

Java erlang套接字通信

c - 当 malloc 返回时,8 字节对齐是什么意思?

c - 局部变量错误的返回地址

c++ - 如何使用 c/c++ 将用户输入放入 SQL 语句中的变量

c - 为什么我可以在 debian 中终止状态 D 的进程?

linux - Jenkins 在远程机器上执行带有参数的 shell 脚本