2010-07-11 2 views
3

가능한 중복 : 함수는 C에서 작업을 과부하 경우
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++에서 동일한 코드를 컴파일하는 경우, 그것을 작동합니다.

누구든지 설명 할 수 있습니까?

감사합니다. Boda Cydo.

+3

아니요, C는 오버로드 된 기능을 지원하지 않습니다. 두 언어는 매우 다릅니다. –

+1

http://stackoverflow.com/questions/2351792/does-c-support-overloading 중복 더보기 –

답변

9

아니요, C에는 기능 과부하가 없습니다.

3

함수 오버로드는 C++의 추가 기능 중 하나이며 "C++를 더 나은 C"라고도합니다.

C++의 개체 지향 기능과는 아무런 관련이 없습니다.