我很惊讶 Eclipse 不仅无法以一种方式运行最简单的程序,而且无法同时以多种方式运行。该程序是
#include <stdio.h>
int main ()
{
int n;
while (scanf("%d", &n) > 0)
{
printf("%d\n", n);
}
return 0;
}
故障1:在模拟器中运行时输出无故显示两次。输出应该显示一次。
故障2:用DE2板子运行时,根本不显示输出。
为什么我的环境不能正常运行?
由于您没有提供很多细节,我只是猜测:
可能启用了某种回声
在嵌入式系统<stdio.h>
上不需要支持。<stdio.h>
保证仅在托管环境中可用(即在操作系统的控制下),而不是在独立环境(裸机)中可用。
引用 C99 草案标准 N1256:
4. 一致性
[...]
6
两种形式的一致性实现是托管的和独立的。符合要求的托管实现应接受任何严格符合要求的程序。符合标准的独立实现应接受任何严格符合标准的程序,该程序不使用复杂类型,并且库条款(第 7 条)中指定的功能的使用仅限于标准头文件
<float.h>
、<iso646.h>
、<limits.h>
、<stdarg.h>
、<stdbool.h>
、<stddef.h>
和<stdint.h>
. 一个符合要求的实现可能有扩展(包括额外的库函数),只要它们不改变任何严格符合的程序的行为。
你应该检查你的板子编译器的文档,看看它支持哪些头文件。