雑記
Cという言語:2
最終更新:
匿名ユーザー
-
view
C言語という言語はやっかいである。
コンピュータの発展に伴って言語仕様にさまざまなつぎはぎがされて統一感ないし。
そもそも、C言語の標準規格といわれるANSIに完全に準拠したコンパイラが存在しない!少なくとも新ANSI C言語辞典(技術評論社)がでた時点ではそうだったと書いてある。
実に困った言語なのである。
大体*という演算子だってややこしい。
宣言するときは
int *hoge;
とポインタであると宣言するために使うくせに、中身にアクセスするときにも
i = *hoge;
なんて使うし。
変数のアドレスを取得するときは
変数のアドレスを取得するときは
piyo = &piyo;
だし。
統一感、ないっすよねえ。
returnだって、(今の仕様では)括弧つけてもつけなくてもいいし。
NULLなんていうのもそう。
たいていは
#define NULL ((void *)0)
あたりで定義されているのだけれど処理系によっては単なる
#define NULL 0
なんてお手軽に定義されていたり。
処理系によってはNULLが0や0をさすポインタじゃなかったり(いやホントにあるんですってば!)する。
処理系によってはNULLが0や0をさすポインタじゃなかったり(いやホントにあるんですってば!)する。
もう勘弁して欲しいいやマジでホントに。
変数や関数の宣言にも気をつけないといけない。
int hoge;
と宣言したときにこのhogeがsignedなのかunsignedなのかは、処理系に依存する。
したがって、明示的に宣言しないときにはunsignedとして扱われる処理系で
int hoge; ・・・ if(hoge <= 0xf0000000)
なんてコードがあったとする。これが正しく動いていたとしても、
signedとして扱われる処理系に持っていったとしたら当然正しく動かなくなってしまう。
signedとして扱われる処理系に持っていったとしたら当然正しく動かなくなってしまう。
どう考えても、C言語が事実上「標準」の言語になった(なってしまった)のは「たまたま」「運が良かった」だけなんじゃないのかな?
そんな気がしてしまう今日この頃なわけで。
そんな気がしてしまう今日この頃なわけで。
・・・どう考えても、初心者向けではないですよね。