【问题标题】:Does function overloading work in C? [duplicate]函数重载在 C 中有效吗? [复制]
【发布时间】:2011-03-14 11:30:18
【问题描述】:

可能的重复:
function overloading in C
Does C support overloading ?

谁能解释一下函数重载在 C 中是否有效?

我试过了,没用:

#include <stdio.h>

int f(int val) {
    printf("f int\n");
    return 5;
}

int f(char *val) {
    printf("f char *\n");
    return 6;
}

int main() {
    f(5);
    f("moo");
}

gcc C 编译器说:

overload.c:8: error: conflicting types for 'f'
overload.c:3: error: previous definition of 'f' was here

但是,如果我用 C++ 编译相同的代码,它就可以工作。

谁能解释一下?

谢谢,博达·赛多。

【问题讨论】:

标签: c overloading


【解决方案1】:

不,C 没有函数重载。

【讨论】:

    【解决方案2】:

    函数重载是 C++ 的附加特性之一,通常被描述为“C++ 作为更好的 C”。

    这与 C++ 的面向对象特性无关。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 2019-06-21
      • 2013-03-21
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多