C中如果函数跟宏有同样的签名,在使用中如何区分?

2025-03-01 04:43:27
推荐回答(2个)
回答1:

你这里说的是linux代码的东西吧?这个应该是/linux-2.6.34.14/include/linux/lockdep.h里面的。
留意一下:#ifdef CONFIG_LOCKDEP
那个宏和函数使用的区别在于是否编译的时候配置了LOCKDEP,配置了,就用
extern void lockdep_init(void);

否则就是:
# define lockdep_init() do { } while (0)

回答2:

签名?名字吗?
宏一般都大写的。
编译时宏是直接被替代的,所以最好不要重名,除非你特殊需要。