我如何使用宏作为函数(声明在头 - 源宏)? 我正在寻找这样的事情(除了这一个不工作)...宏没有看到标题
了foo.h:
#ifndef FOO_H
#define FOO_H
struct bar;
int bar_isEmpty(struct bar *b);
#endif /* !defined FOO_H */
foo.c的:
struct bar {
size_t numElements;
};
#define bar_isEmpty(bar) {bar->numElements == 0}
正如你所看到的,我不能把宏放在标题中,因为结构没有在那里定义。
您能否提供_“does not work”_的定义? –
我想你不能做这样的事情。为什么不在头文件中定义宏或定义普通函数是源文件? – MikeCAT
为什么不把结构和宏移动到头文件? –