intのサイズ

VBAのInteger型変数でオーバーフローをしてしまった。

Cの一般的な整数型であるint型は32bit環境では4バイト。
しかし、VBAのInteger型は2バイト。

これまでCのintが4バイトだから
Integerも同じだろうと思い込んでいた。

C言語ではintと同じサイズのため使用されないlong intだが、
VBAではIntegerが2バイト、Longが4バイトとなっているため
格納したいデータのサイズによって使い分ける必要がある。

また、C言語では型宣言でUnsignedを付けることで
符号なしの変数を使用できるが、
VBAではUnsignedの指定そのものができない。

参考
VB.NET/VB6.0/CLR/C/C++/Win32API 型一覧表
VB研究所

0 件のコメント:

コメントを投稿