Skip to content

Instantly share code, notes, and snippets.

View ForgotMyCode's full-sized avatar

Ondřej Mézl ForgotMyCode

View GitHub Profile
@ForgotMyCode
ForgotMyCode / ll.h
Created April 4, 2023 01:14
Generic Linked List in C (Experimental)
#include <stdlib.h>
#define INTERNAL__CONCAT_2ARGS(LHS, RHS) LHS##RHS
#define INTERNAL__CONCAT_3ARGS(A, B, C) A##B##C
#define INTERNAL__MAKE_INNER_TYPENAME(LL_DECLNAME, TYPE) INTERNAL__CONCAT_3ARGS(INTERNAL__, LL_DECLNAME, INNER_TYPE)
#define INTERNAL__MAKE_INTERNAL_FUNCTION_NAME(LL_DECLNAME, FUNCTION_NAME) INTERNAL__CONCAT_3ARGS(INTERNAL__, LL_DECLNAME, FUNCTION_NAME)
#define INTERNAL__MAKE_INTERNAL_NODE_NAME(LL_DECLNAME) INTERNAL__CONCAT_3ARGS(INTERNAL__, LL_DECLNAME, _LL_Node)
#define INTERNAL__MAKE_INTERNAL_STRUCTED_NAME(LL_DECLNAME) INTERNAL__CONCAT_3ARGS(INTERNAL__STRUCTED_, LL_DECLNAME, _LL_Type)
#define INTERNAL__MAKE_INTERNAL_STRUCTED_NODE_NAME(LL_DECLNAME) INTERNAL__CONCAT_3ARGS(INTERNAL__STRUCTED_, LL_DECLNAME, _LL_Node)