C中函数重载的预编译选项

时间:2014-10-16 12:03:54

标签: c macros overloading precompile

我有一部分代码,我使用预编译开关使用相同功能的多个签名。预编译基于提供的配置生成。这是否符合函数重载的要求?

E.g。

#define Number_Of_Cores 1 (generated based on config)

#if(Number_Of_Cores > 1) [Shall be handled by PreProcessor]
FUNCTION_ABC(Core_Identifier);
#else
FUNCTION_ABC();
#endif

2 个答案:

答案 0 :(得分:3)

没有。根据预编译开关的值,将编译任一代码块。因此,在任何给定的编译实例中,只有一个函数签名可用。

答案 1 :(得分:1)

不,当然没有。

C不支持函数重载。

您永远不会同时定义这两个函数,因此不会出现重载。

在C中唯一的#34;重载"适用于某些内置运算符,如+,当然,您无法在C ++中自定义/覆盖。