Palmプログラミングのスレッド へ(^^へ)
■ このスレッドは過去ログ倉庫に格納されています
0040猫の牙
NGNGC++を使いつつ、サイズの小さなソフトを作りたいと思っていたのですが、
クラスのメンバ変数を参照するだけでサイズが10KB以上増えてしまい、
納得いかない気分になっています。
具体的には、
下のプログラム1を2のように書き換えてもサイズは変化しないのですが
「問題の場所」と書かれた行のコメントをはずすと、2のほうがサイズが大きくなってしまうのです。
これってなぜなんでしょう?
インライン展開すれば同じプログラムになると思うんですが。
//------------プログラム1----------
DmOpenRef dbP;
void func(UInt32 id)
{
UInt16 index;
DmFindRecordByID(dbP,id,&index);
VoidHand handle=DmGetRecord(dbP,index);
//MemHandleResize(handle,10); //問題の場所
MemHandleUnlock(handle);
DmReleaseRecord(dbP,index,true);
}
//------------プログラム2------------
DmOpenRef dbP
class CDbObject
{
private:
UInt16 m_index;
public:
VoidHand m_handle;
public:
inline CDbObject(UInt32 id)
{
DmFindRecordByID(dbP,id,&m_index);
m_index=DmGetRecord(dbP,m_index);
}
inline ~CDbObject()
{
MemHandleUnlock(handle);
DmReleaseRecord(dbP,m_index,true);
}
};
void func(UInt32 id)
{
CDbObject object(id);
//MemHandleResize(object.m_handle,10);//問題の場所
}
■ このスレッドは過去ログ倉庫に格納されています