問題タブ [c99]

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

c++ - C99stdint.hヘッダーとMSVisualStudio

驚いたことに、MS VisualStudio2003以降にC99stdint.hがないことに気づきました。彼らには理由があると思いますが、どこでコピーをダウンロードできるか誰か知っていますか?このヘッダーがないと、uint32_tなどの便利なタイプの定義がありません。

0 投票する
7 に答える
10108 参照

c - C99はどの程度普遍的にサポートされていますか?

今日のコンパイラでは、C99標準はどの程度普遍的にサポートされていますか?GCCでさえ完全にサポートしていないことを理解しています。これは正しいですか?

C99のどの機能が他の機能よりもサポートされていますか?つまり、ほとんどのコンパイラが私を理解していることを確認するために使用できる機能はどれですか?

0 投票する
12 に答える
64922 参照

c++ - Visual Studio は新しい C / C++ 標準をサポートしていますか?

私は C99 と C++11 について読み続けており、これらすべてが言語標準に追加されつつあり、いつか使用すると便利になるかもしれません。しかし、私たちは現在、Visual Studio で C++ を作成することで苦しんでいます。

標準の新しいものがビジュアル スタジオに追加されることはありますか?それとも、Microsoft はそれを行うために新しい C# バリアントを追加することにもっと関心を持っていますか?

編集: 受け入れられた回答に加えて、Visual C++ チームのブログを見つけました:

http://blogs.msdn.com/vcblog/

具体的には、その中のこの投稿:

https://web.archive.org/web/20190109064523/https://blogs.msdn.microsoft.com/vcblog/2008/02/22/tr1-slide-decks/

非常に便利。ありがとう!

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

c++ - C と C++ にダイグラフがあるのはなぜですか?

今日、C99 と C++ に有向グラフがあることを知りました。以下は有効なプログラムです。

私の質問は、なぜそれらが存在するのですか?

0 投票する
6 に答える
13074 参照

c - C89、C90、または C99 のすべての関数にプロトタイプが必要ですか?

真に標準に準拠するには、C のすべての関数 (main を除く) にプロトタイプが必要です。それらが同じ翻訳単位で定義された後にのみ使用される場合でも?

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

c - 文字列を珍しい整数型に移植可能に変換する方法は?

scanf()いくつかの背景: たとえば、文字列を のような標準の整数型に変換するために for を使用したい場合は、次のようにfromuint16_tを使用します。SCNu16<inttypes.h>

しかし、より珍しい整数型のようなpid_tものにはそのようなものはありません。では、通常の整数型のみがサポートされてい<inttypes.h>ます。printf()移植可能な aに別の方法で変換するには、次のように にpid_tキャストしてintmax_t使用できますPRIdMAX

scanf()ただし、 に移植可能にする方法はないようですpid_t。これが私の質問です:これを移植可能にするにはどうすればよいですか?

にキャストしてから、値がの制限内にあることを確認してから にキャストすることを考えscanf()ましたが、 の最大値または最小値を取得する方法はないようです。intmax_tpid_tpid_tpid_t

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

c - C99 と ANSI-C の構造体の違いは何ですか?

このコードは ANSI-C では正しくないように見えますが、C99 では問題ありません。

C99 と ANSI-C の struct の違いは何ですか?

編集:「a」を忘れました、悪いです。このコードは、C99 モードの gcc で問題なくコンパイルされますが、すべての C99 拡張機能をサポートしていないことが知られている splint では解析エラーになります。

Edit2: これが splint の出力です:

Edit3: このファイルは eCos fileio.h (このフラグメントの最後の行は 152 行目) です。

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

c - -std=c99 が設定されている場合、gcc が random() インターフェイスを見つけられないのはなぜですか?

私は"#include <stdlib.h>"ソースの上部で行います。

コンパイル例:

-std=c99 をオフにすると、関数 isfinite() が見つかりません。したがって、これとその他の理由で -std=c99 を使用したいと思います。私が見逃しているトリックはありますか?

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

iphone - libSystem ライブラリのリファレンス

ドキュメントによると、iPhone のコア OS には libSystem ライブラリが含まれており、これには標準の C ライブラリ関数が含まれていると思われます。libSystem で利用可能なすべての機能を確認するにはどうすればよいですか?

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

c - 変数を宣言する場所をスプリントに無視させるにはどうすればよいですか?

変数を宣言する場所をスプリントに無視させる方法を知っていますか?

古い学校の c では、すべての関数の最初に変数を宣言するように指示されていますが、私は悪い人なので、変数を使用する場所の近くで宣言するのが好きです。良い例は int i; です。for(i=0;...) の直前。

非常に簡単な例を見てみましょう

ここで、splint とほとんどの古い c コンパイラは int i; を移動したいと考えています。1 行上げるか、宣言と for ループを {} で囲みます。

さて、質問ですが、このチェックをオフにするにはどうすればよいですか? しかし、良い他のチェックを続けますか?

ありがとうヨハン


注 1: 私はすでに gcc 警告 (以下を参照) を防御の最初の行として使用し、valgrind を 2 番目の行として使用しています。しかし、私の愚かさを制御できるもののリストに添え木を追加することを考えています;-)しかし、このチェックはただ面倒です.

私が使用する gcc 警告: -Wall -W -Wextra -Wconversion -Wshadow -Wcast-qual -Wwrite-strings -Werror

注 2: 私は、その悪い動作から生じる潜在的な移植性の問題について知っています。しかし、読みやすさが向上すると思います。別名、この型オフ宣言を検索するために上下にジャンプする必要がないことは、より価値があります (これについては別のスレッドで説明します)。


更新: もう少し情報を追加します。上記のコードを main.c というファイルに入れました。使用されているプラ​​ットフォームは Ubuntu 8.04 で、エディターとして gvim を使用しています。これは、実行したときの splint からの出力です。

これにより、以前は考えもしなかった 2 つの疑問が生じます。

  1. 「現在の値と冗長」、現在の値は?

  2. 警告ではなく解析エラーなのはなぜですか?


更新::この問題をサポートするためにスプリントにパッチを適用する可能性があります。これはまだ試していませんが、解決策だと思います。