1

我正在尝试select(int, fd_set, fd_set)为 UDP 套接字连接的函数设置超时。

当我设置第二个和 usecond 变量时,我得到Error this declaration has no storage class or type specifier

这是代码

#define UTIMER 300000
#define STIMER 0 
struct timeval timeouts;
timeouts.tv_sec=STIMER;    // <-- ERROR HERE
timeouts.tv_usec=UTIMER;   // <-- ERROR HERE
4

1 回答 1

4

问题是您还没有#include定义 timeval 的标头。struct timeval timeouts本质上是一个原型声明。它为编译器提供了足够的信息来知道变量的存在,并允许您在指针操作中使用它,以及关于指针的类型信息(它指向 a struct timeval)。

但它还不知道它的内部是什么样子。

如果这是 Windows,您需要#include <Winsock2.h>;Linux#include <sys/time.h>

于 2013-11-03T20:32:10.287 回答