0

我很惊讶 Eclipse 不仅无法以一种方式运行最简单的程序,而且无法同时以多种方式运行。该程序是

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

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

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

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

4

1 回答 1

1

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

  1. 可能启用了某种回声

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

引用 C99 草案标准 N1256:

4. 一致性

[...]

6

两种形式的一致性实现是托管的和独立的。符合要求的托管实现应接受任何严格符合要求的程序。符合标准的独立实现应接受任何严格符合标准的程序,该程序不使用复杂类型,并且库条款(第 7 条)中指定的功能的使用仅限于标准头文件<float.h><iso646.h><limits.h><stdarg.h><stdbool.h><stddef.h><stdint.h>. 一个符合要求的实现可能有扩展(包括额外的库函数),只要它们不改变任何严格符合的程序的行为。

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

于 2013-09-28T23:17:21.800 回答