問題タブ [kr-c]

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.

0 投票する
4 に答える
2596 参照

c - CのK&Rブックの例1.5.2の問題

私はK&Rで自分自身にCを教えていますが、本の例の1つに困惑しています。例に書かれているとおりにコードをコンパイルしますが、作成者の言うとおりには実行されません。プログラムは文字を数えることになっています。与えられたコードは次のとおりです。

コンパイルするには、main()をint main()に置き換えます。しかし、私はそれが質問に関連していないと思います。プログラムはコンパイルされ、正常に実行されます。しかし、それは単にそれがするように書かれたように文字を数えません。私は何かが足りないのですか?本が書かれてから、現代​​のコンパイラがこのようなコード例を扱う方法に何か変更があったでしょうか?この掲示板の善良な人々が提供できるかもしれないどんな援助も大いに感謝されるでしょう。

最高、ダン

0 投票する
2 に答える
2234 参照

c - K&Rの演習1-24-初歩的な構文チェック

演習では、「Cプログラムを作成して、不均衡な括弧、角かっこ、中かっこなどの基本的な構文エラーがないかどうかを確認します。シングルとダブルの両方の引用符、エスケープシーケンス、コメントを忘れないでください。」

かっこ、角かっこ、中かっこをスタックに配置し、コメントや引用などにあるかどうかをマークするためのさまざまなカウンターとともに、すべてがLIFOであることを確認することで、問題を解決することにしました。

問題は、私のコードは機能しているものの、構造が不十分で、特に慣用的ではないと感じていることです。構造体内に状態変数(スタック、、など)を実装し、テストをサブルーチンに分割してみescapedましinStringた。それはあまり役に立ちませんでした。エスケープ文字などを正しく処理しながら、この問題をよりクリーンな方法で解決する方法はありますか?

0 投票する
3 に答える
2438 参照

c - K&R 関数宣言を ANSI 関数宣言に自動的に変換する方法は?

ご覧のとおり、K&R スタイルでは、変数の型は中かっこではなく新しい行で宣言されます。K&R 関数宣言を ANSI 関数宣言に自動的に変換する方法は? Linux でこのような使いやすいツールを知っている人はいますか?

0 投票する
3 に答える
8032 参照

c - C の ULONG_MAX と同じ UINT_MAX

K&R C の本の演習問題を解いていたときに、演習問題 2.1 に出くわしました。

最初は として取得しましたが、プレースホルダーを使用しましたが、現在は と同じ番号を取得しUINT_MAX-1%uますULONG_MAX

付録 B の本では、彼らはそれがUINT_MAXすべきで65535あり、あるULONG_MAXべきだと言っています4294967295が、演習を実行すると、UINT_MAXULONG_MAXasの両方が得られ4294967295ます。

何故ですか?

0 投票する
1 に答える
680 参照

c++ - 内部名の少なくとも最初の31文字または63文字は重要ですか?

これが本からの直接の引用です(K&R、第2版、35ページ):

「少なくとも内部名の最初の31文字は重要です。関数名と外部変数の場合、言語が制御できないアセンブラーとローダーによって外部名が使用される可能性があるため、数は31未満になる可能性があります。外部名の場合、標準では、6文字と1つのケースのみが保証されています。」

また、C99では、内部名に長さの制限はありませんが、最初の63のみが重要であることが保証されています(§5.2.4.1変換制限)。

私の質問は、なぜこれらの制限が具体的に31または63なのかということです。なぜこの数なのか?なぜ19、24または他の数ではないのですか?実装の問題である場合、31または63にすることによるメリットはありますか?

0 投票する
1 に答える
739 参照

c++ - c99:内部名の63文字は重要ですか?

重複の可能性:
内部名の少なくとも最初の31文字または63文字は重要ですか?

これが本からの直接の引用です(K&R、第2版、35ページ):

「少なくとも内部名の最初の31文字は重要です。関数名と外部変数の場合、言語が制御できないアセンブラーとローダーによって外部名が使用される可能性があるため、数は31未満になる可能性があります。外部名の場合、標準では、6文字と1つのケースのみが保証されています。」

c99では、内部名に長さの制限はありませんが、最初の63個だけが重要です

私の質問は、なぜこれらの制限が具体的に31または63なのかということです。なぜこの数が具体的に19,24または他の数ではないのですか?実装の問題である場合、31または63にすることによるメリットはありますか?

0 投票する
3 に答える
9727 参照

c - unix 読み書き機能

入力として「∂∑∑®†¥¥¥˚π∆˜˜∫∫√ç tu 886661~EOF」を入力すると、同じものがコピーされます。同時に格納される非 ASCII 文字の数は?

BUFSIZ は、転送されるバイト数です。入力から出力に何かをコピーできる場合、BUFSIZ はどのようにバイト転送を制限しますか?

char buf[BUFSIZ] はどのように非 ASCII 文字を格納していますか?

0 投票する
3 に答える
588 参照

c - KとRの練習1-24

私はカーニハンとリッチーによるCプログラミング言語でプログラムをやっています。

私は現在、次のような演習1〜24を行っています。

かっこ、角かっこ、中かっこなどの基本的な構文エラーがないかCプログラムをチェックするプログラムを作成します。escape sequencesシングルとダブルの両方の引用符、、およびコメントを忘れないでください。

私はすべてをうまくやりました...しかしescape sequences、これらの括弧、括弧、および中括弧にどのように影響するかわかりませんか?

なぜ彼らはエスケープシーケンスについて警告したのですか?

0 投票する
1 に答える
201 参照

c - この奇妙な C++ 定義は何を意味するのでしょうか?

宿題のコードにこの奇妙な関数定義があり、それが何を意味するのかよくわかりません。

特に「char *string;」行、最後にセミコロンがあるのは何ですか。

0 投票する
1 に答える
145 参照

c - putchar(c) の '_' の値は?

ループ外の putchar(c) の値は?

プログラムを実行したら、「th」(wtq) と言って cmd (Windows) で Enter キーを押します。

の前のスペースに注意してくださいprintf c_outloop 0putchar(c)スペースの価値は?