【问题标题】:C++ Error this declaration has no storage class or type specifierC++ 错误此声明没有存储类或类型说明符
【发布时间】:2013-11-03 20:21:18
【问题描述】:

我正在尝试为 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

【问题讨论】:

  • #define 是一个预处理指令,';'在这些行的末尾是不正确的..
  • 把它们拿出来。仍然得到错误

标签: c++ struct


【解决方案1】:

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

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

如果是Windows,则需要#include &lt;Winsock2.h&gt;; Linux#include &lt;sys/time.h&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多