AClass(名前) {
メンバの宣言
};AClass0(名前);
これ以降は「名前 *」が使えます。
AClass1(名前) {
メンバの宣言
};#define AClass0(nam) typedef struct nam##_ nam #define AClass1(nam) struct nam##_ #define AClass(nam) AClass0(nam); AClass1(nam)
| AM0 | 標準のmalloc/freeを呼ぶだけのクラスです。主に共通のインタフェースを提供するために用意されています。 |
| AM1 | 最初にかなり大きなサイズのメモリを親に対して要求します。そしてmalloc要求が来るたびにそのメモリを切り取って渡します。free要求が来てもそれはすべて無視します(!)。 |
| AMF1 | あらかじめサイズを一つだけ設定しておきます。そのサイズでのmalloc/freeについては、内部で高速に処理します。それ以外のサイズについては、そのまま親に丸投げします。 |
| AMF4 | AMF1を内部に4つもったAMで、4通りのメモリサイズに対してのみ高速化します。もしもっとたくさんのメモリサイズに特化したければ、このAMを直列につなげばいいでしょう。 |