2010-07-11 4 views
3

Возможные Дубликаты:
function overloading in C
Does C support overloading ?Работает ли функция перегрузки в 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"); 
} 

ССАГПЗ C компилятор говорит:

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

Однако, если я компилирую тот же код в C++, это работает.

Может ли это объяснить?

Спасибо, Бода Cydo.

+3

Нет, C не поддерживает перегруженные функции. Эти два языка очень разные. – 2010-07-11 12:55:47

+1

Подробнее дубликат http://stackoverflow.com/questions/2351792/does-c-support-overloading –

ответ

3

Перегрузка функций является одной из дополнительных возможностей C++, которые часто описываются как «C++ как лучший C».

Это не имеет ничего общего с объектно-ориентированными функциями C++.

Смежные вопросы