函数重载是否在C中工作?

bod*_*ydo 3 c overloading

可能重复:
C中的函数重载C
是否支持重载?

任何人都可以解释函数重载是否在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");
}
Run Code Online (Sandbox Code Playgroud)

gcc C编译器说:

overload.c:8: error: conflicting types for 'f'
overload.c:3: error: previous definition of 'f' was here
Run Code Online (Sandbox Code Playgroud)

但是,如果我在C++中编译相同的代码,它的工作原理.

有人能解释一下吗?

谢谢,Boda Cydo.

Phi*_*ipp 9

不,C没有功能重载.