【发布时间】:2017-07-24 16:10:01
【问题描述】:
我已经看到this 解决方案,但我遇到了同样的错误。对于一个类,我们不得不切换到 c99 编译器而不是 gnu,但现在 timespec 似乎被破坏了。除了“timespec 的存储大小未知”之外,我还收到了一堆其他错误,例如“CLOCK_MONOTONIC 未声明”、“取消引用指向不完整类型 'struct timespec' 的指针”和未使用的变量警告,但我认为这些会消失一旦我解决了编译器问题。
我不认为我声明 timespec 变量的方式有什么问题,
struct timespec startTime;
【问题讨论】:
-
“我们不得不切换到 c99 编译器而不是 gnu”——这绝对不是一个正当的理由。 gcc 支持 C99 和 C11,只需了解
-std=选项即可。另一个问题,为什么你要学习一个 6 年前被取消的 C 版本,现在只有标准 C11。写你的问题:阅读How to Ask 并提供minimal reproducible example。现在看起来,您似乎访问了您不应该使用的struct的内部。这意味着您的代码被设计破坏了。 -
在我们的新任务详情中,他专门告诉我们使用标志
-std=c99。对不起,我是想把它放在描述中。我没有选择使用它,我们必须这样做。您还可以详细说明尝试访问结构的内部吗? -
在您的问题中,您暗示您不使用 gcc,因为它不符合 c99。但是根据您的评论,您确实使用 gcc(与您在问题中的陈述相矛盾),只是使用我推荐的选项。在编程之前,您应该首先了解发生了什么。你应该仔细阅读我之前的评论并尝试理解。这不是喂勺服务!
-
@Olaf "gnu" 是一个 gcc 标志,-std=gnu99。
-
@Olaf 是的 OP 使用了一些草率的术语,但信息很明确,无需完全迂腐模式。扩展是的重点。
struct timespec就是其中之一。