我有#define带参数的函数,例如DEF_GLOBAL_STRUCT(index),我需要将此宏从1调用到100。最佳方法是什么?我可以使用for循环吗?
我编写了简单的代码来展示我的问题。
#include <stdio.h>
#include <stdint.h>
#define DEF_GLOBAL_STRUCT(index) uint8_t m_##index##_size=2; \
uint32_t m_##index##_data1=0; \
uint32_t m_##index##_data2=0;
DEF_GLOBAL_STRUCT(1)
DEF_GLOBAL_STRUCT(2)
DEF_GLOBAL_STRUCT(3)
// ...
DEF_GLOBAL_STRUCT(100)
int main()
{
printf("%u\n", m_1_size);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用诸如for循环之类的东西来代替100行的define函数调用。还是有其他解决方案?
如果我拥有代码的所有控制权,则可以定义结构并使用数组进行声明。但是我做不到。我需要使用这种类型的定义函数。那是我的限制。