我如何使用宏作爲函數(聲明在頭 - 源宏)? 我正在尋找這樣的事情(除了這一個不工作)...宏沒有看到標題
了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
爲什麼不把結構和宏移動到頭文件? –