問題タブ [ansi-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 投票する
5 に答える
4042 参照

c - ANSI C#defineVS関数

コードのパフォーマンスについて質問があります。Cにポイントの構造体があるとしましょう:

構造体を使用する関数。

この関数を#defineに置き換えるのが賢明なアイデアかどうか疑問に思いました。

関数のオーバーヘッドがないため、より高速になると思います。パフォーマンスを向上させるために、プログラム内の他のすべての関数にこのアプローチを使用する必要があるかどうか疑問に思っています。だから私の質問は:

コードのパフォーマンスを向上させるために、すべての関数を#defineに置き換える必要がありますか?

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

c - 文字列配列変換

私は次のコードを持っています:

「gcc-Wall-ansi-pedantic」でOKにコンパイルされます。しかし、別のツールチェーン(Rowley)では、

char**tが存在する行。これは本当に違法なコードですか、それとも大丈夫ですか?

すべての答えをありがとう。私は今、自分の問題がどこにあったかを知っています。しかし、それは新しい疑問を提起します:

文字列配列の初期化

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

c - 文字列配列の初期化

これは私が持っている別の質問の続きです。

次のコードを検討してください。

驚いたことにコンパイルされず (思ったほど C 構文を知らないようです)、次のエラーが生成されます。

char* を char[] に変更すると、正常にコンパイルされます。

誰かが私に理由を説明できますか?

0 投票する
0 に答える
106 参照

c - ANSI C プログラムを Windows から Mac にクロス コンパイルしますか?

重複の可能性:
Linux または Windows で OS X 用にコンパイルする方法は?

Mac を購入して Xcode をインストールしなくても、ANSI C 関数のみを使用するプログラム (基本的に stdio.h のみを含めます) をクロスコンパイルすることは可能ですか?

編集

daniwebのこの投稿によると、どの FreeBSD コンパイラでも機能しますが、それは本当ですか? つまり、特別なリンカは必要ありません。また、Intel プロセッサ上の Mac をターゲットにしているので、オブジェクト コードは同じであると思いますか?

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

c - ANSI C: isprint() は非 ASCII 文字に対して true を返しますか?

ファイルの内容全体を出力する C コードがいくつかあります。プログラムは以前はファイルを正常に印刷していましたが、1 秒印刷すると、絶対にあってはならない Unicode 文字が表示され続けます。

( で囲まれていますwhile(!feof(file)))
私が間違っていない限り、印刷可能な ASCII 文字のみを印刷する必要があります。いずれにせよ、最初に表示されるのは です\357\277\275。これは ASCII ではなく、印刷できません。

ファイルにはこれだけが含まれています:foo+bar.foo+t-bar.foo+completely fake

そして、これを出力します:(�foo+bar.foo+t-bar.foo+completely fake奇妙な文字と残りの間に改行を入れて)。

単純にすべてを印刷すると ( a la putchar(c))、まったく同じ文字が行末に配置されます。

別のファイルを使用してみました (古いファイルの名前を変更し、別のファイルへのソフト リンクを使用することにより) が、まったく同じ結果が得られます。

ファイルが空の場合にもこれを行います。

ファイルは vim で作成された完全なプレーン テキストであり、特別なことは何もありません。

元のコードは次のとおりです。

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

c - コンパイラフラグとして「-ansi」または明示的な「-std=...」を使用する必要がありますか?

ANSICはISOCとまったく同じではなく、コンパイラは「-ansi」の解釈が異なる可能性があることを読みました。(gccはそれをC90にマップし、clangはそれをC89にマップします)現時点では、どの標準が使用されているかが明示的に示されているため、「-ansi」ではなく「-std=...」を使用する傾向があります。Linux、Windows、MACでのコンパイルに特に興味があるので、一部のコンパイラは「-std=...」ではなく「-ansi」を理解できないのではないかと心配しています。では、一方を他方の上に使用することの長所と短所はありますか?

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

c++ - const 修飾子 ANSI C および ANSI C++ の場合

これは本当ですか ?

1. const 修飾子を単独で使用すると、デフォルトで int になります。例えば、

意味

2.ANSI C は、const の初期化子を必要としません。何も指定されていない場合、const を 0 に初期化します。たとえば、

意味

答えてください。ANSI規格による

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

c - ANSI C (C89) を使用する必要がありますか?

2012 年です。C でコードを書いています。まだ C89 を使用する必要がありますか? C99 をサポートしないコンパイラはまだありますか?

/* */の代わりに使用してもかまいません//

についてはわかりませんC89 forbids mixing declarations and code。私は、実際にはすべての宣言を 1 か所にまとめた方が読みやすいという考えに傾いています。そうでない場合は、関数が長すぎます。

VLA は便利そうに見えますが、まだ必要ありません。

やむを得ない理由がなければ、C89 を使い続ける必要がありますか? 私が考慮していない他のものはありますか?

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

windows - ANSI CforWindowsの単純なファイル削除プログラム

ANSI Cで記述されたファイルを削除する簡単なプログラムを探しています。
例として、Cを使用して「C:\test.txt」にあるファイルをどのように削除しますか。

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

c - C99で実行時に可変長配列のサイズを計算するにはどうすればよいですか?

C89 では、配列の長さはコンパイル時に認識されます。しかし、可変長配列を使用する C99 では、実行前に配列の長さが不明な場合があります。

では、どのように計算されるのでしょうか。

また、動的に割り当てられた配列の長さを同じ方法で計算できないのはなぜですか?