C函数可以有多个签名吗?

时间:2011-09-30 18:42:27

标签: c function

  

可能重复:
  function overloading in C

道歉,如果这是一个副本,但如果是,我找不到它。

在C中,您可以定义具有相同功能名称但具有不同参数的多个功能吗?我来自C#背景。在C#中,以下代码完全合法。

//我们的第一个功能

int MyFunction()
{
    //Code here
    return i;
}

int MyFunction(int passAParameter)
{
    // Code using passAParameter
    return i;
}

在我的特定情况下,我想在参数列表的末尾创建一个具有一个可选参数(即int)的函数。可以这样做吗?

3 个答案:

答案 0 :(得分:34)

没有。 C不支持重载。

答案 1 :(得分:8)

没有。在严格的C中,你不能重载

但是,鉴于大多数C编译器也支持C ++,并且C ++支持重载,如果您使用的是主流C / C ++编译器,则很有可能进行重载。

但它并非严格标准或可移植到纯C环境。

答案 2 :(得分:2)

不,你必须为每个函数使用不同的名称(这不适用于C ++,因为它允许你指定可选参数)