a22_acl2_01
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* acl2ライブラリ #1
-(by [[K]], 2022.11.20)
** (0)
-acl2ライブラリは、できるだけC言語が使いやすくなるように...
-説明はいかにも他人が使うことを想定しているように見えるか...
** (1) 構造体の宣言
-基本的には以下のようにしてください。
AClass(名前) {
メンバの宣言
};
-こうするだけで自動的にtypedefもされるので、以降はstruct...
~
-もし、とりあえずクラス名だけ宣言してポインタを使えるよう...
AClass0(名前);
これ以降は「名前 *」が使えます。
AClass1(名前) {
メンバの宣言
};
~
-裏方はこうなっています。
#define AClass0(nam) typedef struct nam##_ nam
#define AClass1(nam) struct nam##_
#define AClass(nam) AClass0(nam); AClass1(nam)
** (2) デストラクタ
-構造体の最初のメンバは、デスクトラクタ関数(deinit関数)...
-デストラクタ関数は、第一引数がオブジェクトへのポインタで...
-多くのオブジェクトでは、0でも1でも同じ終了処理をしていま...
-ただまあ、このルールは、acl2ライブラリが提供するオブジェ...
** (3) メモリ管理
-acl2ライブラリが提供する関数群は、勝手にmallocやfreeを呼...
-この機能のおかげで、オブジェクトごとにメモリ管理の方法を...
|AM0|標準のmalloc/freeを呼ぶだけのクラスです。主に共通の...
|AM1|最初にかなり大きなサイズのメモリを親に対して要求しま...
|AMF1|あらかじめサイズを一つだけ設定しておきます。そのサ...
|AMF4|AMF1を内部に4つもったAMで、4通りのメモリサイズに対...
--[補足:AM1] メモリが足りなくなればまた親に大きなサイズを...
--[補足:AMF1] 指定されたサイズでのfreeの処理は、返された...
** (4) エラーレベル
-ADbgLvというマクロ定数を定義すると、デバッグ向けの機能が...
-ADbgLv=1で、負荷の小さいデバッグ支援機能が有効になります...
-ADbgLv=2で、すべてのデバッグ支援機能が有効になります。
-ADbgLv=0でも消費メモリ量くらいは確認できるようにすべきだ...
-なお、デバッグレベルによって、構造体の大きさが変わること...
// arpは外部コンテキストで取得する。ctxはスレッドに固定し...
終了行:
* acl2ライブラリ #1
-(by [[K]], 2022.11.20)
** (0)
-acl2ライブラリは、できるだけC言語が使いやすくなるように...
-説明はいかにも他人が使うことを想定しているように見えるか...
** (1) 構造体の宣言
-基本的には以下のようにしてください。
AClass(名前) {
メンバの宣言
};
-こうするだけで自動的にtypedefもされるので、以降はstruct...
~
-もし、とりあえずクラス名だけ宣言してポインタを使えるよう...
AClass0(名前);
これ以降は「名前 *」が使えます。
AClass1(名前) {
メンバの宣言
};
~
-裏方はこうなっています。
#define AClass0(nam) typedef struct nam##_ nam
#define AClass1(nam) struct nam##_
#define AClass(nam) AClass0(nam); AClass1(nam)
** (2) デストラクタ
-構造体の最初のメンバは、デスクトラクタ関数(deinit関数)...
-デストラクタ関数は、第一引数がオブジェクトへのポインタで...
-多くのオブジェクトでは、0でも1でも同じ終了処理をしていま...
-ただまあ、このルールは、acl2ライブラリが提供するオブジェ...
** (3) メモリ管理
-acl2ライブラリが提供する関数群は、勝手にmallocやfreeを呼...
-この機能のおかげで、オブジェクトごとにメモリ管理の方法を...
|AM0|標準のmalloc/freeを呼ぶだけのクラスです。主に共通の...
|AM1|最初にかなり大きなサイズのメモリを親に対して要求しま...
|AMF1|あらかじめサイズを一つだけ設定しておきます。そのサ...
|AMF4|AMF1を内部に4つもったAMで、4通りのメモリサイズに対...
--[補足:AM1] メモリが足りなくなればまた親に大きなサイズを...
--[補足:AMF1] 指定されたサイズでのfreeの処理は、返された...
** (4) エラーレベル
-ADbgLvというマクロ定数を定義すると、デバッグ向けの機能が...
-ADbgLv=1で、負荷の小さいデバッグ支援機能が有効になります...
-ADbgLv=2で、すべてのデバッグ支援機能が有効になります。
-ADbgLv=0でも消費メモリ量くらいは確認できるようにすべきだ...
-なお、デバッグレベルによって、構造体の大きさが変わること...
// arpは外部コンテキストで取得する。ctxはスレッドに固定し...
ページ名: