Piotr Caban (@piotr) commented about dlls/vccorlib140/tests/vccorlib.c:
+static HSTRING (*__cdecl p_Guid_ToString)(const GUID *); +#define SIMPLE_TOSTRING_FUNC(name, type) static HSTRING (__cdecl *p_##name##_ToString)(const type *); +#define SIMPLE_TOSTRING_FUNCS \
- SIMPLE_TOSTRING_FUNC(char16, WCHAR) \
- SIMPLE_TOSTRING_FUNC(float32, FLOAT) \
- SIMPLE_TOSTRING_FUNC(float64, DOUBLE) \
- SIMPLE_TOSTRING_FUNC(int16, INT16) \
- SIMPLE_TOSTRING_FUNC(int32, INT32) \
- SIMPLE_TOSTRING_FUNC(int64, INT64) \
- SIMPLE_TOSTRING_FUNC(int8, INT8) \
- SIMPLE_TOSTRING_FUNC(uint16, UINT16) \
- SIMPLE_TOSTRING_FUNC(uint32, UINT32) \
- SIMPLE_TOSTRING_FUNC(uint64, UINT64) \
- SIMPLE_TOSTRING_FUNC(uint8, UINT8)
+SIMPLE_TOSTRING_FUNCS +#undef SIMPLE_TOSTRING_FUNC
I prefer to avoid using too many `define`s since it makes the code much harder to read.