問題タブ [putchar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - EOF の値を出力する
Kernighan と Ritchie (C プログラミング言語) では:
「EOFの値を出力するプログラムを書いてください」
私が書いた:
しかし、何も出力されませんなぜですか?
c - getchar と putchar の実用的な使い方は何ですか?
これらの関数の実際の用途は何ですか? つまり、while ループを使用してそれらを使用するとEOF
、入力を与えると入力したとおりのもの"hello"
が得られ、出力は として得られ"hello"
ます。それで、ポイントは何ですか?
c - Cでputchar()関数を実行している間、「入力」入力はどのように機能しますか?
私はこのコードをテストしました:
質問:
文字列を入力してから「Enter」を入力すると、次のような結果が得られました。
文字行のすぐ後ろに EOF(ctrl+d) を追加すると、次のように、入力のすぐ後ろに結果が得られました。
私の質問は、「入力」がコードの実行をトリガーしたかどうかです。EOF を入力したときに、結果を出力するために 'enter' が必要でなかったのはなぜですか? 実行を終了するために別の EOF が必要だったのはなぜですか?
どうもありがとう。
c - Eclipse IDE を使用した単純な putchar プログラムのエラー
私はこれが初めてです。以下のプログラムでは、動作しますが、「出力ファイル putchar.exe を開けません: 権限が拒否されました」というエラーが表示されます。$1 = 0xff ターゲットのエンディアンは自動的に設定されます (現在はリトル エンディアン) [新しいスレッド 7868.0x1f3c]
デバッグ情報が何を意味するのかわかりません...助けていただければ幸いです。ありがとう!
c - gcc -O2 が putchar out を最適化しないようにするにはどうすればよいですか?
カスタム putchar(); を使用するアプリケーションがあります。これまではうまく機能していました。アプリケーションの最適化レベルを -O2 に上げたところ、putchar は使用されなくなりました。私はすでに-fno-builtinを使用しており、いくつかのグーグルに基づいて-fno-builtin-putcharを CFLAGS に追加しましたが、それは問題ではありませんでした。これを回避する「正しい」方法はありますか、それともコードに次のようなものを追加する必要がありますか
-O2 を使用して自分の putchar() 関数を引き込めるようにするには?
edit-- この質問の最初の投稿以来、さらに別のgccコマンドラインオプションとして-fno-builtin-functions=putcharに出くわしました。これと上記の両方が gcc によって受け入れられますが、目立った効果はないようです。
さらに編集 - さらに実験すると、gcc が-fno-builtin-yadayadaも飲み込むことがわかります。そのため、gcc フロントエンドで解析するオプションは、2 番目のダッシュの後のテキストを、それを無視するいくつかの下位レベルに渡しているようです。
詳細: try1.c、try2.c、makefile の 3 つのファイル...
try1.c:
try2.c:
メイクファイル:
出力は次のとおりです。しかし、 -O2 を使用すると、他の「魔法の」場所から取得できます...
c - C - getchar と putchar を使用して文字を交換する
これは宿題です。getchar と putchar のみを使用する必要があります
getchar と putchar を使用して文字を交換する必要があります。たとえば、PARIS APIRS
そして、それは機能しますが、4、6、8の文字数が偶数の場合、ENTERを2回押す必要があります...。この動作をなくすにはどうすればよいですか? getchar で \n を強制終了する方法はありますか
byte - C++ 出力バイトの説明
教科書から:
したがって、バイトには8ビットがあり、右ビットシフトは左に0ビットを追加し、右からビットをポップオフします。しかし、上記の例を使用してバイトを出力するにはどうすればよいでしょうか? 私は期待していたでしょう:
putchar がポップされたオフビットを出力すると仮定するので?
c - putc と putchar のパフォーマンスは?
putc を複数回呼び出す方が、puts や printf よりも高速であると常に考えていました。たとえば「hello」を出力するには、実際のプログラムでは常に puts または printf を使用しますが、現在は C コードを生成するプログラムを作成しているため、コードを生成するかどうかputchar('h'); putchar('e') ...
は最初はもっとあるべきだと思っていたので迷っていました。もっと早く。しかし、非常に興味深い結果が得られたテストを実行しました。コンパイラは GCC です。
最適化なしの結果:
4.247 1.013 1.195
最適化 (-O2) による結果:
0.910 1.184 1.315
最適化の結果 (-O3):
0.920 1.158 1.311
したがって、putc を複数回呼び出すと、最適化せずに単純に実行する場合、printf の puts よりも遅くなります。まず、その理由が気になります。次に、プログラムで生成された C コードについては、どの方法に従うべきですか?