2010-07-11 78 views
3

可能重複:
function overloading in C
Does C support overloading ?函數重載在C中工作嗎?

誰能解釋IF函數使用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++編譯相同的代碼,它的工作原理。

任何人都可以解釋它嗎?

謝謝,Boda Cydo。

+3

不,C不支持重載函數。這兩種語言是完全不同的。 – 2010-07-11 12:55:47

+1

更多http://stackoverflow.com/questions/2351792/does-c-support-overloading的副本 – 2010-07-11 13:04:14

回答

9

不,C沒有函數重載。

3

函數重載是C++的附加功能之一,通常被稱爲「C++作爲更好的C」。

它與C++的面向對象特性無關。