
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ランキング
-
【COBOL】小さい字を大きい字へ...
-
templateクラスの宣言と定義を...
-
C言語を始めようver1.1.1.7で
-
void型のポインタで構造体の参照
-
Cでデータベースにアクセスする...
-
Visual Studioにコンパイラを追...
-
CRCの計算でエラー
-
C++ ヘッダです。
-
PIC18Fで変数の受け渡し...
-
コンパイラツールのについて
-
エスケープコマンドの出力がで...
-
C++をやりたいのですが
-
エディタとコンパイラ 基礎
-
C言語 コンパイラ
-
ちょ~ド素人の質問・・・・・・・
-
プログラムの勉強について
-
HDLについて
-
トランジスタ技術9月号の第2章A...
-
C/C++における最もシェアの高い...
-
C言語開発環境について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
C++でデスクトップGUIアプリ開...
-
COBOLの論理演算子について質問...
-
組み込みソフト。ROM領域にデータ
-
printfなど、標準関数のソース...
-
cc と gcc の違い
-
リリースモードとデバッグモー...
-
パーサとコンパイラの違いって?
-
AIXとCOBOLについて
-
<conio.h>?
-
COBOLのALPHABET...
-
VC++の/Zm オプションについて
-
C++Builder → Visual C++ 移植...
-
C言語の規格
-
COBOLの論理演算子について
-
変数の内容がコロコロ変わる、...
-
Macで使えるC言語のコンパイラ...
-
PICでのI2C通信でのマスタ、ス...
-
最初に使う変数のゼロクリアに...
おすすめ情報