我试图将以下宏的每个声明移动到另一个内存段中。没有section属性它也能正常工作。关于为什么我不能在这里使用它以及如何让它发挥作用有什么想法吗?
#define RINGBUFFER_DECLARE_MEMB(var, sz) \
uint8_t var ## __buf[sz] __attribute__((section(".rambss"))); \
struct ring_buffer var __attribute__((section(".rambss")))
device.h:91:29: error: section attribute not allowed for '__iso_buf__buf' RINGBUFFER_DECLARE_MEMB(__iso_buf, BUF_SIZE_ISOLATED);
最佳答案
愚蠢的我,问题是在结构定义中使用了宏:
struct a {
RINGBUFFER_DECLARE_MEMB(umama, 3);
};
这当然是不允许的
关于c - 错误: section attribute not allowed when used in macro,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56504685/