diff --git a/02_macros/vec.inc b/02_macros/vec.inc index 6427f05..da9c66a 100644 --- a/02_macros/vec.inc +++ b/02_macros/vec.inc @@ -1,14 +1,9 @@ #include "../aliases.h" +#include "../helper_macros.h" #include #include -#define obj(o, m) o.m -#define stringify(x) #x #define printf_spec(PI) stringify(PI) -#define typename_concat(C, I) vec##C##I##_t -#define typename(C, I) typename_concat(C, I) -#define funcname_concat(B, C, I) vec_##B##_vec##C##I##_t -#define funcname(B, C, I) funcname_concat(B, C, I) typedef struct { T x; diff --git a/03_xmacros/vec.inc b/03_xmacros/vec.inc index 48f842e..ffa397d 100644 --- a/03_xmacros/vec.inc +++ b/03_xmacros/vec.inc @@ -1,14 +1,10 @@ #include "../aliases.h" +#include "../helper_macros.h" #include #include #define obj(o, m) o.m -#define stringify(x) #x #define printf_spec(PI) "%" stringify(PI) ", " -#define typename_concat(C, I) vec##C##I##_t -#define typename(C, I) typename_concat(C, I) -#define funcname_concat(B, C, I) vec_##B##_vec##C##I##_t -#define funcname(B, C, I) funcname_concat(B, C, I) typedef struct { #define VEC(type, name) type name; diff --git a/helper_macros.h b/helper_macros.h new file mode 100644 index 0000000..494475e --- /dev/null +++ b/helper_macros.h @@ -0,0 +1,10 @@ +#ifndef HELPER_MACROS_H +#define HELPER_MACROS_H + +#define stringify(x) #x +#define typename_concat(C, I) vec##C##I##_t +#define typename(C, I) typename_concat(C, I) +#define funcname_concat(B, C, I) vec_##B##_vec##C##I##_t +#define funcname(B, C, I) funcname_concat(B, C, I) + +#endif // !HELPER_MACROS_H