函数重载在 C 中有效吗? [复制]
Posted
技术标签:
【中文标题】函数重载在 C 中有效吗? [复制]【英文标题】:Does function overloading work in C? [duplicate] 【发布时间】:2011-03-14 11:30:18 【问题描述】:可能的重复:function overloading in CDoes 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 不支持重载函数。这两种语言非常不同。 更多***.com/questions/2351792/does-c-support-overloading的副本 【参考方案1】:不,C 没有函数重载。
【讨论】:
【参考方案2】:函数重载是 C++ 的附加特性之一,通常被描述为“C++ 作为更好的 C”。
这与 C++ 的面向对象特性无关。
【讨论】:
以上是关于函数重载在 C 中有效吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章