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

C++ Error this declaration has no storage class or type specifier

本文关键字:类型 说明符 存储 错误 声明 C++      更新时间:2023-10-16

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

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

这是代码

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

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

但它还不知道里面是什么样子的。

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