C で機能的に純粋な連結リストを作成するにはどうすればよいですか? リンクされたリストは私がやるべきことですか? オブジェクトのリストを取得しようとしていますが、外部の状態を変更せずに関数からリストに項目を追加する方法が思いつきません。
私は基本的にこれが欲しい:
void AddItemToList(Item item);
発信者がどのリストに追加されているかを気にすることなく、どこからでも呼び出せるようにする。
今私はちょうど持っています:
void AddTypeToList(entityType_t *type, entityType_t *listHead)
{
type->next = listHead;
listHead = type;
}
void RegisterEntityType(entityType_t *type)
{
AddTypeToList(type, typeList);
}
しかし、これは明らかに機能的ではありません (またはそうですか?)RegisterEntityType
は を変更しているためですtypeList
。(これはグローバルですentityType_t
)