● 複素数について
これはまだ対応できていないようです.対応されると複素数の扱いが楽になるので,マンデルブロート集合の画像が作りやすくなるでしょう.
● 浮動小数点について
これもまだ対応できていません.これは各環境で独自に扱っていた浮動小数点の扱い方を統一したものです.しかし,これに対応するということは,いままでの方式を変更しなければならないので,各環境で問題が残るでしょう.
● stdint.hで定義された型を使う方式について
これはstdint.hで新たに定義された型を標準ライブラリで使用する際に,マッチングをとるための書式指定マクロの定義です.inttypes.hに定義されているはずですがGCCではstdint.hに対応していないので,書式指定マクロもまだ定義されていません.
● stdbool.hについて
これはGCC3.2の環境で動作しました.stdbool.hにはbool,true,falseが定義されていて,プログラム中で使うことができます(リスト21).
〔リスト21〕stdbool.hの例(test140.c)
|
/*
*stdbool.hについて
*/
#include <stdio.h>
#include <stdbool.h>
main()
{
bool test;
test = true;
if (test )
{
printf("testは真です\n");
}
}
|
|
実行結果は以下のとおりです.
$ ./test140
testは真です
● stdint.hについて
前述しましたがstdint.hは定義されていません.現在int型の大きさは各環境によって8ビットだったり,32ビットだったりしますが,これを共通に扱うようにする目論見です.しかし,これは大きな変更なので受け入れられるかどうかわかりません.
たとえば,int32_tという型をこの環境にもっていっても32ビットと扱えば,int型の大きさに依存するより,各環境に移植しやすくなります.
● tgmath.hについて
これも定義されていません.たとえば数学関数では,doubleを返すsin(),floatを返すsin(),long doubleを返すsin()がありますが,これをマクロを使って見かけ上一つの関数にするためのものです.
● C99規格対応に関するGNU Cのバージョンごとの進捗
いろいろ問題はあるようですが,C99規格の重要な部分はGCC3.2で対応できているようです.これに関する公式情報は以下のサイトにあるので,参照してください(図1).
〔図1〕Status of C99 features in GCC
|
|
C99規格の説明とGCCの対応については,これで終わります.
|