重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
标准C, 不支持函数重载。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、网站制作、荔波网络推广、微信小程序开发、荔波网络营销、荔波企业策划、荔波品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供荔波建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
函数重载是C++的概念。 不光是类的成员函数, 一般函数以及模板函数都是可以重载的。
C语言没有重载函数!printf是C语言的函数
如果你是C++项目
那你直接写函数就行了
如果你也是先变长参数函数的话 那就编译出错呗!
C语言是不支持函数重载的,但是C++是可以的,这是C++对C的一个重要扩展。
1.从C语言的语法设计来说是不支持的,早期的C编译器未考虑过函数重载这一功能,所以就会有那么多类似的函数abs,labs,fabs等等(每种类型都要考虑一个不同的函数名)。\x0d\x0a2.C语言标准就规定不允许同一作用域中两个函数重名。和C语言相关的域有两种,一个是给编译器看得,还有一种是给链接器看的,而给编译器看的这种域主要是关于\x0d\x0a变量的可见范围,而链接器看到的那个是叫文件域,而全局域可能要跨越好几个文件域,这样只要两个同名函数用static修饰,并且在不同的文件中,就不会\x0d\x0a冲突。不过这个实际上已经超越了编译器的范围,表面看起来两个函数同名,但是实际上编译器为链接器产生是指向的同一个函数地址。 \x0d\x0a3.函数重载是一个编译期行为,主要是通过name mangling来产生不同的汇编符号,让linker可以正确的link代码。\x0d\x0a4.但是,C语言作为一个具有超强功能的底层语言,是有办法进行模拟函数重载的。那就是函数指针。最简单的例子就是qsort函数。这个函数可以传递一个函数指针变量,通过不同的函数指针,可以对不同的数据类型就行相同的qsort操作,从某种层面来说相当于函数重载。