無限ループが機能しない、GCCでコンパイルされています -- c フィールド と gcc フィールド 関連 問題

Endless loop doesn't work, compiled with gcc












1
vote

問題

日本語

私のコードに無限ループを追加するときは、機能しません。それはただ走り、何もしません。

たとえば、このコードは List<Object>7 を印刷しません。

<事前> <コード> List<Object>8

しかし、このコードは "hello"を印刷します。

<事前> <コード> List<Object>9

<コード> <noscript data-reactid=".0"></noscript>0 ループをマイコードに追加する方法は?

英語

When I add an endless loop to my, code it doesn't work. It just runs and does nothing.

For example, this code doesn't print "hello".

#include <stdio.h>  int main(){     printf("hello");     while(1){      }      return 0; } 

but this code prints "hello".

#include <stdio.h>  int main(){     printf("hello");     //while(1){      //}      return 0; } 

How can I add a while(1) loop to my code?

</div
     
         
         

回答リスト

4
 
vote
vote
ベストアンサー
 

たとえば、このコードでは "hello"を印刷しません。

バッファリングのためです。

バッファをフラッシュするには、 printf() の直後に fflush(stdout) を呼び出すことができます。

<事前> <コード> #include <stdio.h> int main(){ printf("hello"); fflush(stdout); while(1){ } return 0; }

あなたの2番目の場合には、プログラムの終端時にバッファがフラッシュされます。

 

for example in this code, doesn't print "hello".

It is because of the buffering.

You can call fflush(stdout) just after the printf() in order to flush the buffer:

#include <stdio.h>  int main(){     printf("hello");     fflush(stdout);     while(1){      }      return 0; } 

In your second case the buffer is flushed at program's termination.

</div
 
 
     
     
2
 
vote

あなたが欲しいものが始めるのなら、「こんにちは」を無限に印刷することです、そしてあなたはこのようなものが必要です。それは印刷とフラッシュ内部のインフィニットループを置きます。

<事前> <コード> #include <stdio.h> int main() { while(1) { printf("hello"); fflush(stdout); } return 0; }
 

If what you want, to start with, is to print "hello" infinitely, then you need something like this. It puts a print and flush inside the infinite loop.

#include <stdio.h>  int main() {     while(1)     {         printf("hello");         fflush(stdout);     }     return 0; } 
</div
 
 

関連する質問

2  関数がインライン化されていても、このコードが遅いのはなぜですか。  ( Why is this code slower even if the function is inlined ) 
このような方法があります: <事前> <コード> bool MyFunction(int& i) { switch(m_step) { case 1: if (AComplexCondition) { ...

59  __ attribute__ in GNU C  ( Attribute in gnu c ) 
GNU Cプログラムで使用されている __attribute__ はなぜですか? ...

4  GCCの最適化、静的オブジェクト、および制限値  ( Gcc optimization const static object and restrict ) 
私は組み込みプロジェクトに取り組んでいて、USARTのレジスタへのアクセスを最適化するためにマクロを使用するコードのいくつかにもっと構造を追加しようとしています。 Preprocessor#define'd registerアドレスをconst構造に整理したい...

20  現代のコンパイラはMMX / 3Dnow / SSEの指示を使用していますか?  ( How do modern compilers use mmx 3dnow sse instructions ) 
x86命令セット拡張機能を読んで、いくつかの非常に具体的な状況でのみ役立つように見えます(例:SSE3のHADDPD - (hardsdpd - doudle))。これらには、故意に設定される必要がある特定のレジスタレイアウトが必要です。またはその前に...

2  LinuxでC ++を使用したDLL-S  ( Dll s using c on linux ) 
Googleを使用してLinux上でDLL-Sを作成する方法を見つけようとしましたが、非常に混乱している情報がありました。 Linux上で動的リンクライブラリを書き込むことは可能ですか?そうでなければ、いくつかの実行プログラムから別のモジュールでコードを呼...

2  MingW 3.4.5の-ANSIスイッチを使用する問題  ( Problems using the ansi switch in mingw 3 4 5 ) 
GCCで使用されているフラグについて読んで、 gcc -ansi -pedantic -Wall file1 [file2 [file3...]] -o output を使用するためのRecCommendationを読み取っていました。私のコードのための品質...

16  GCCを使用してLinuxで<ioStream.h>をリンクします  ( Linking iostream h in linux using gcc ) 
Linuxで最初に最初のC ++プログラムを実行しようとしています(Linux Mint 8)。同じ問題を持つGCCまたはG ++のいずれかを使用します。コンパイラはライブラリをインポートしようとしていません。 私はiostream.hファイルをコピーする...

40  -pthreadsで-d_reentrantが必要ですか?  ( Do i need d reentrant with pthreads ) 
Linux(カーネル2.6.5)私たちのビルドシステムは -D_REENTRANT を使ってGCCを呼び出します。 pthreads を使用している場合は依然として必要ですか? gcc -pthread オプションとはどうですか?私はPthrea...

7  スクリプトを使用してコンパイル時にコードを生成します  ( Generating code at compile time using scripts ) 
私は理想的には、私の実際のコードに(非常に繰り返し)C / C ++コードを、コンパイル時に、と言うようなコード、PythonスクリプトのSTDOUT、同じ方法で、同じ方法でマクロ 例えば、特定のクラスのパブリック属性に依存する機能を持たせたいとしましょう.C...

10  MATLAB MEXファイルの共有ライブラリの場所:  ( Shared library locations for matlab mex files ) 
libhdf5を使用するMATLAB MEX関数を書かせようとしています。 My Linuxのインストールは、libhdf5-1.8共有ライブラリとヘッダーを提供します。ただし、MATLAB R2007Bのマイバージョンは、1.6リリースからlibhdf5....




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有