2006年02月03日

従来のキャストの問題点

異なる型への変換において、C/C++ではキャストが用いられます。

// intからlongへのキャスト
int ival;
int lval = (long)ival;

ご存知のとおり、キャストは非常に危険です。 本来ならば型の不一致によるコンパイルエラーをねじ伏せるのですから。

キャストの使われ方(意味)は、大きく3種(型変換/型変更/const外し)に分類されます。

1. 型変換

// int から double へ
int ival;
double dval = (double)ival;

2. 型変更

// long から int* へ
long lval;
int* iptr = (int*)lval;

3. const外し

// const int* から int* へ
const int* ciptr;
int* iptr = (int*)ciptr;

上記のどの目的でキャストしても、構文としてはどれも同じ

(型)式

です。つまりコードからは"何が目的でキャストしたのかはっきりしない"のですね。
posted by シンビアン at 16:38| Comment(0) | TrackBack(0) | Symbian OS C++ 実践開発技法 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/12696878

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。