在宏或功能之间切换

时间:2015-01-28 17:17:12

标签: c function macros

我有三个文件。

  1. ass3.c
  2. ass3.h
  3. teacher.c
  4. teacher.c 已提供给我,无法以任何方式更改,其他两个文件由我编码。

    teacher.c 具有main()函数,并包含 ass3.h

    ass3.c 还包括 ass3.h teacher.c ass3.c 中调用函数。

    该程序有效,但我需要添加其他功能。

    我需要为用户添加指定用户是否想要使用宏或函数的功能(称之为 isAvail())。现在,该程序仅使用 isAvail()函数。

    我该如何实施?该要求的摘录是:

    “实现 isAvail()作为函数和宏扩展(宏)使用条件处理,用户可以在编译代码中选择宏或函数。如果定义了 IS_AVAIL (宏名称)名称,则应使用宏,如果未定义IS_AVAIL名称,则应使用该函数“

    请再次注意,我只能更改Ass3.c和Ass3.h。

    请指出正确的方向,如果可能的话,请给我一个例子。如果我需要添加更多细节,请原谅。

    谢谢。

1 个答案:

答案 0 :(得分:3)

只需检查IS_AVAIL是否定义为此

#ifdef IS_AVAIL
#define isAvail() MACRO_DEFINITION_HERE
#else
int isAvail(void) {return ?;}
#endif

其中?是函数应该返回的内容。