◆◇◆ C言語とPocketC言語の違い ◆◇◆

[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使いの方は、この動きも押さえておくとよろしいのではないでしょうか。


[Japanese Pocket C User's Page]