0

Eclipse が最も単純なプログラムを 1 つの方法だけでなく、同時に複数の方法で実行できないことに驚いています。プログラムは

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

失敗 1: シミュレーターで実行すると、理由もなく出力が 2 回表示されます。出力は 1 回表示されます。

失敗 2: DE2 ボードで実行すると、出力がまったく表示されません。

自分の環境が期待どおりに機能しないのはなぜですか?

4

1 に答える 1

1

あなたは多くの詳細を与えていないので、私は推測しています:

  1. ある種のエコーが有効になっている可能性があります

  2. 組み込みシステム<stdio.h>では、サポートする必要はありません。ホストされた環境(つまり、OS の制御下) で<stdio.h>のみ使用できることが保証されており、独立した環境(ベアメタル) では使用できません。

C99 ドラフト標準 N1256 からの引用:

4.適合性

[...]

6

準拠する実装の 2 つの形式は、ホスト型と独立型です。適合するホストされた実装は、厳密に適合するプログラムを受け入れるものとします。<float.h>準拠する独立した実装は、複雑な型を使用せず、ライブラリ句 (句 7) で指定された機能の使用が標準ヘッダー 、、、、、、、および の内容<iso646.h>に限定さ れる厳密に準拠するプログラムを受け入れます。準拠する実装には、厳密に準拠するプログラムの動作を変更しないという条件で、拡張 (追加のライブラリ関数を含む) を含めることができます。<limits.h><stdarg.h><stdbool.h><stddef.h><stdint.h>

ボードがサポートするヘッダーを確認するには、ボードのコンパイラのドキュメントを確認する必要があります。

于 2013-09-28T23:17:21.800 に答える