目的: 为了定义一个宏,然后根据宏 决定使用哪个函数 (函数名 是一样的 ,只是实现的内容不同)
在一个.c 文件下
#ifdef A_ENABLE
void a(uint8 i)
{
....
}
#else
void a(uint8 *i)
{
....
}
#endif
在对应的.h 文件下
#ifdef A_ENABLE
void a(uint8 i);
#else
void a(uint8 *i);
#endif
开启 A_ENABLE 的宏后, 在 某个地方 调用了函数 a(5);
结果编译的时候总是报错 :error: unknown type name 'uint8' void a(uint8 *i);
奇怪的是 我在#else 下面随便乱写写代码,编译的时候也会报哪里的错, 但不是宏启动后, #else 下面就不列入编译吗?
请问#ifdef 是不是不可以用来 区分同样名字的函数呢?
|