![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.3ベストアンサー
- 回答日時:
ISO の規格は,C99 のみが現行の規格になります。
C90 (ISO/IEC 9899:1990) は C95 (ISO/IEC 9899:1990/Amd.1:1995) によって改正され,
C90 および C95 は C99 (ISO/IEC 9899:1999) によって取り消され,かつ置き換えられています。
識別方法ですが,本来の識別方法で言えば,
・__STDC__ が定義されていない
非標準
・__STDC__ が 1 かつ __STDC_VERSION__ が定義されていない
C90
・__STDC__ が 1 かつ __STDC_VERSION__ が 199409L
C95
・__STDC__ が 1 かつ __STDC_VERSION__ が 199901L
C99
になります。
他に,非標準の機能が使えないことを前提で言えば,
コンパイラが
int main (void) <% return 0; %>
を通せば C95 or C99,
int main (void) <% return 0; %> // comment
を通せば C99 です。
> 今、私はVisual Studio 2008で書いていますが、規格は何に依存するものなのでしょうか。
> Editorとか、コンパイラーによって、自動的に決まるものなのでしょうか。
コンパイラです。
ただし,コンパイラが複数バージョンをサポートしている場合があります (GCC 等)。
その場合は,コンパイラオプション等が関係してきます。
VC++ 2008 に関しては,ほぼ C95 をサポートしています。
ほぼ,というのは,wcstok のように,未だに標準と異なる形のものが残っているためです。
また,ISO C++ (C++98/C++03) に対応したコンパイラの場合,C++ の規格が C95 を参照するため,少なくとも C95 の範囲はほとんどカバーされます。
# VC++ は C++ 側を中心にしているっぽいので,C++0X のサポートは進んでいますが,C99 のサポートは進んでいない状況です。
> また、このような規格についてのサイトがあれば教えて頂けないでしょうか。
規格の説明サイトはいくつかあると思いますが,規格自体に関しては,原則として規格を購入することになります。
# ちょっと調べれば,ドラフトが見つかったりするのですが……。
購入に関しては,英語版になりますが,ANSI Standard StoreでINCITS/ISO/IEC 9899を購入するのが一番安いです。
ISO/IEC 9899と同等のもので,30ドル,書き込み時点の為替相場で3000円弱,クレジットカードの手数料を考えても4000円は超えないと思います。
# JIS規格は14280円,ISO規格は33264円 (書き込み時点)
site: American National Standards Institute - ANSI Standards Store
http://webstore.ansi.org/
抜け道としては,日本工業標準調査会のサイトで閲覧することができます (閲覧のみ可能です)。
JIS検索でX3010を検索してください。
site: JISC 日本工業標準調査会
http://www.jisc.go.jp/
No.2
- 回答日時:
>C言語にはISOでの規格について(通称)C55、C99の2通りがあると聞きましたが、今自分が使っているCはどちらの方
>を使っているかというのはどのようにしたら分かるのでしょうか。
「C55ではエラーになるが、C99ではエラーにならない、新しい書き方」をしているソースコードをコンパイルしてみると、ある程度は判ります。
エラーが出なければC99に準拠している可能性があります。
エラーが出た場合、少なくとも「C99には準拠していない」ことが判ります。
次に「C55以前の古いコンパイラではエラーになるが、C55ではエラーにならない書き方」をしているソースコードをコンパイルしてみると、もう少し判ります。
エラーが出なければC55に準拠している可能性があります。
エラーが出た場合、少なくとも「C55には準拠していない」ことが判ります。
また、エラーが出るか出ないかの他に「ライブラリ関数の挙動」でも、どの規格に準拠しているか、少しは判ります。
No.1
- 回答日時:
> C言語にはISOでの規格について(通称)C55、C99の2通りがあると聞きましたが、
ISOの規格でないものも含めれば、K&RとかC89、C90やそれらを独自拡張された方言もたくさんありますよ。
> 今自分が使っているCはどちらの方を使っているかというのはどのようにしたら分かるのでしょうか。
まあ、そのソースコードを見るしかありません。また規格上で違いがない部分だけで書かれているコードであれば見ても分かりません。
> 今、私はVisual Studio 2008で書いていますが、規格は何に依存するものなのでしょうか。
> Editorとか、コンパイラーによって、自動的に決まるものなのでしょうか。
たしかVisual Studioに付属のコンパイラは規格ではC90に対応しているだけだったような...(違っていたら誰か指摘してください)
まあ、それから独自の拡張が色々とされていますけどね。
Editorによって決まることはありません。
コンパイラーによってはある程度は規定されます。規格に完全に準拠していなくても一部には対応していたりするので...
> また、このような規格についてのサイトがあれば教えて頂けないでしょうか。
日本語の資料としては、例えば
JIS X3010-1993 プログラム言語C
JIS X 3010-2003 プログラム言語C
とか...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 of の必要性と意味 2 2022/07/31 17:09
- 哲学 日本語は 言語類型として あたかも始原のごとくである 3 2022/05/29 04:41
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- 英語 提示した結果構文が非文となる理由について 1 2022/07/25 12:22
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- コンサルティング・アドバイザー UL など海外規格をまとめる方法について 3 2023/08/16 10:29
- その他(パソコン・スマホ・電化製品) 「規格外の太陽光パネルQ CELLS PEAK DUO MS-G9 230Wの一般販売」 2 2023/07/19 08:56
- 格安スマホ・SIMフリースマホ SMS認証用の電話番号が欲しい 6 2022/06/12 18:21
- その他(パソコン・周辺機器) PCI-Express の USB Type-C PD 対応拡張カードはありますか? 5 2022/10/08 08:54
- 哲学 《太郎ハ花子ガ好きだ》構文から《象は鼻が長い / 僕はウナギだ / コンニャクは太らない》へ 1 2022/05/30 08:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cc と gcc の違い
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C言語の規格
-
組み込みソフト。ROM領域にデータ
-
C言語:OS移行時の注意点(Sola...
-
C言語の関数の中身のソースコー...
-
パーサとコンパイラの違いって?
-
リリースモードとデバッグモー...
-
プログラミングの字句解析につ...
-
Visual Studio でmakefileを使...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
コンパイルできません。
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
eclipseでプログラムが実行でき...
-
Excelのエラーで困ってます。
-
C言語でヘッダファイルにグロー...
-
ASP.NET exeの作成方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
cc と gcc の違い
-
printfなど、標準関数のソース...
-
パーサとコンパイラの違いって?
-
COBOLのALPHABET...
-
Visual Studio でmakefileを使...
-
組み込みソフト。ROM領域にデータ
-
リリースモードとデバッグモー...
-
C++Builder → Visual C++ 移植...
-
C++でデスクトップGUIアプリ開...
-
サイクルカウントの方法
-
VisualC++6.0でのProfessionalE...
-
COBOLの論理演算子について質問...
-
関数形式マクロ dtaは戻り値が...
-
C言語の2進数表記
-
POWERCOBOLのSQL...
-
Σの計算について
-
C言語の規格
-
COBOL計算式の中間ワーク桁数に...
おすすめ情報