C ++错误此声明没有存储类或类型说明符

时间:2013-11-03 20:21:19

标签: c++ struct

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

当我设置第二个和第二个变量时,我得到错误此声明没有存储类或类型说明符

这是代码

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

1 个答案:

答案 0 :(得分:3)

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

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

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