問題タブ [c89]

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 投票する
2 に答える
2719 参照

c - C90 と typedef

struct point {(...)};定義していました。しかし、C90 では、typedef を使用する必要があるようです。これを正しく行うにはどうすればよいですか?typedef struct point {} point;? typedef struct {} point;? typedef struct point {};?

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

c - -エラーを与えるAnsiとコメント?

-ansi -pedanticを含む行でコンパイル中にエラーが発生します// Comment here。なぜこれが起こるのですか?

'/'トークンの前に必要な式

プログラム内の漂遊'\347'

サンプルコードint someVariable = 0; // Some comment

私はこれらの多くのエラーを持っています、それは何ですか?

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

c - Cで値渡し

次のコードは移植可能ですか?

ポインターを値で渡すだけで、呼び出し元で変更できます。

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

function - 構造体の初期化を関数呼び出しで変数として使用するにはどうすればよいですか。ANSI-Cバージョン

私はC89、C90、Ansi-Cコードを書いています。私の関数の1つは、パラメーターとして構造体を必要とします。最初に構造体を作成してから関数に渡すのではなく、その構造体を初期化して関数を呼び出したいと思います。

動作するスニペットを次に示します。

これが私が書きたいものですが、うまくいきません:

またはさらに良い

編集:LabCVIはISO 9899:1990標準を使用しています。

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

c - C89 コードと C99 コードを混在させることは可能ですか?

C 仕様の違いに関連する多くのことについて、私は疑問を持っています。

C99 でライブラリをプログラミングした場合、C89 コードから使用できますか? (C89 準拠の定義を持つ関数のみを使用)。

たとえば、このコードは C89 で使用できますか?

共有ライブラリのヘッダー:

前もって感謝します :)

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

c - 定数に新しい値を割り当てようとしています

これは私のモジュールから抽出されます:

初期化後に定数に新しい値を割り当てようとすると、コンパイラは(のみ)警告メッセージを発行します。

これはC99では正しくありませんが、私のモジュールはC89に基づいているようですが、誰かがC89に従ってこのステートメントの有効性を確認できます。

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

c - gcc -ansi が cosf などの宣言を削除するのはなぜですか?

あなたはおそらく、私が完全に狂っていて、プログラミングがひどく下手だと思っているでしょう。それらの1つが当てはまるかもしれませんが、私の調査結果を読んでください.

はい、私は#include <math.h>

完全なコードはここにあります。( VS2010 でコンパイルできるように ansi 準拠にしようとしていましたが、混合コードと宣言に関するエラー、および fminf() の欠落が原因でした。VS2010 がデフォルトの警告レベルで混合コードと宣言を気にかけていることに驚きました。私は2008年は気にしないで思い出してください。しかし、間違っている可能性があります。)

以下は、c89/-ansi 標準を使用した場合の gcc 出力です。関数の暗黙の宣言に注意してください。未使用のパラメーターについては他にもいくつかありますが、今のところそれらについては気にしません。(GLUT でコールバックを登録するための署名に必要)

c89 または ansi 標準を使用してアプリケーションを実行すると、数学関数が期待どおりに動作しないのと同じように、間違った出力が生成されます。

c99 標準を使用すると、関数メッセージの暗黙の宣言がなくなりました。

c99 標準を使用すると、プログラムは期待どおりに動作します。

質問

-ansi フラグを使用すると、 math.h から宣言が削除されるように見えるのはなぜですか?

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

c - dirent.hなしでC90のディレクトリにアクセスするにはどうすればよいですか?

私はC90に基づいてLabCVIで働いています。

手元にあるタンクは、「..\data」ディレクトリとサブディレクトリにある「*.spec」ファイルの絶対パスを見つけることです。

dirent.hでこれを行う方法についての説明があることは承知していますが、dirent.hなしで行う必要があります。この(パートIパートII)チュートリアルは、私が探しているものではありません。LabCVIはdirentヘッダーを備えておらず、dirent.hの依存関係がLabCVIと互換性がないため、インターネットからistをインポートできません。

LabCVIへのすべての依存関係を削除したら、より優れたIDE /言語に移行する予定ですが、その日までコードをキャンプ可能に保つ必要があります。そのため、LabCVIのディレクトリユーティリティを使用できません。

これを回避してディレクトリアクセスを取得するにはどうすればよいですか?(コードはXPマシンで実行されます。)

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

c - これは悪いコーディング慣行ですか?

PC-lintを使用してコードを分析していますが、これらの行でいくつかのエラーが発生しています。それは私のコーディングの慣習が間違っているのだろうかと思いますか?

編集:あなたの助けの後、私は今持っています:

それはどのように見えますか?

0 投票する
8 に答える
23170 参照

c - char を char 配列にキャストするか、char 配列を char にキャストしますか?

では、char があり、それを 1 行のコードで strcat() して char 配列にしたいとします。[非実用的な] 例:

または、逆のことをしたかったのですが、データ型に関係なく、文字列を連結または型キャストするための適切な関数は何でしょうか? または、私が見逃している構文があるかもしれません...

これが例です。コンパイルは問題なく実行できますが、クラッシュします。