【问题标题】:Failing a very simple program in both ways以两种方式都失败了一个非常简单的程序
【发布时间】:2013-10-05 00:58:18
【问题描述】:

我很惊讶 Eclipse 不能同时以多种方式运行最简单的程序。该程序是

#include <stdio.h>
int main ()
{
  int  n; 
  while (scanf("%d", &n) > 0)
  {
    printf("%d\n", n);
  }
  return 0;
}

失败1:在模拟器中运行时,输出无故显示两次。输出应该显示一次。

故障2:使用DE2板运行时,输出根本不显示。

为什么我的环境不能正常运行?

【问题讨论】:

  • 这些复杂的IDE总是有问题。我从来没有喜欢过他们中的任何一个。我的 IDE 是 vi。它工作得非常可靠。

标签: c eclipse printf scanf nios


【解决方案1】:

由于您没有提供太多细节,我只是猜测:

  1. 可能启用了某种回显

  2. 不需要支持嵌入式系统上的&lt;stdio.h&gt;&lt;stdio.h&gt; 保证仅在托管环境(即在操作系统的控制下)中可用,而不是在独立环境(裸机)中可用。

    李>

引自 C99 草案标准 N1256:

4。一致性

[...]

6

一致性实现的两种形式是托管的和独立的。一个符合的 托管实施应接受任何严格遵守的程序。一个符合的 独立实施应接受任何严格遵守的程序,不 使用复杂类型并在其中使用库子句中指定的功能 (第 7 条)仅限于标准标题 &lt;float.h&gt; 的内容, &lt;iso646.h&gt;&lt;limits.h&gt;&lt;stdarg.h&gt;&lt;stdbool.h&gt;&lt;stddef.h&gt;&lt;stdint.h&gt;。符合要求的实现可能有扩展(包括额外的 库函数),只要它们不改变任何严格符合的行为 程序。

你应该查看你的板子的编译器文档,看看它支持哪些头文件。

【讨论】:

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