ヒープを使用せずに、C でデータ構造のような一般的なベクターを作成することは可能ですか。基本的には配列データ型が必要ですが、より一般化されたバージョンが必要です。
typedef struct {
/* some data types*/
}TYPE1;
typedef struct {
/* some data types*/
}TYPE2;
typedef struct _GCACHE_T
{
const int element_size;
const int count;
struct _ELEMENT {
UBYTE data[element_size];
BOOLEAN is_valid;
}element[count];
}GCACHE_T;
GCACHE_T f_cache1 = {sizeof(TYPE1), 15, {0} };
GCACHE_T f_cache2 = {sizeof(TYPE2), 10, {0} };
上記のコードはコンパイルされませんが、要件をより明確にするために提供しています。
ヒープメモリの使用が許可されていれば、これは簡単に実装できたはずです。コードは小さなマイクロ ヒープ メモリの使用を意図しているため、許可されていません。
すぐに使用することもできましたが、一般的な方法で実行できるかどうかを確認するだけです。
TYPE1 f_cache1[15];
TYPE2 f_cache2[10];
ベクターのサイズは大きくなりません。ユニオンを使用することもできましたが、メモリのトレードオフがあるため、使用したくありません。