[Japanese Pocket C User's Page]
PocketCは名前にCとついていますが、実際はかなりの部分で違います。
で、簡単にではありますが、PocketCとC言語の違いを述べます。
< 1.ポインタの概念が違う >
C言語の場合、int型やchar型に対しポインタを指定できますが、
PocketCの場合、ポインタ型という特殊なデータ型があります。
そのため、C言語におけるポインタと使い方が異なる為、
注意が必要です。
PocketCでは、ポインタにより指定された変数のデータ型を調べるすべがないため、
ポインタを利用したプログラムはデバッグが大変になりそうです。
できるだけ使わない方が安全でしょう。
< 2.多次元配列の扱いが違う >
PocketC単体では、1次元配列しかサポートされていません。
ただ、PocketCで多次元配列を利用するためのソースが公開されていますので、
利用できないというわけではありません。
< 3.構造体が使えない >
アルゴリズムの解説書に必ずといっていいほど出てくる、
2分木を実現するために必要な構造体は、
PocketCではサポートされていません。
< 4.サポートされているプリプロセッサが少ない >
PocetCではプリプロセッサ(#で始まるもの)がサポートされていますが、
C言語のそれよりは、サポートされているものが少ないです。
PocketCで使えたもの:#include、#define、#ifdef、#ifndef、#endif、#resource
PocetCで使えなかったもの:#if、#elseif、#undef
< 5.string型がある >
C言語では文字の扱いでいろいろ苦労しますが、
PocketCでは文字列を扱うstring型があります。
< 6.データ型の自動変換が行われる >
PocketCでは、異なるデータ型同士で代入などが行われると、
自動的に型変換が行われます。
一見便利に見えますが、場合によっては、トラブルの原因となりますので、
注意が必要です。
また、余談ではありますが、Palm版では、
ANSI CをPocketCに移植しようとされている方もいらっしゃるようです。
(該当のページ・・・pclib)
元来C使いの方は、この動きも押さえておくとよろしいのではないでしょうか。