c语言软件怎么用 C语言可不可以重载?
浏览量:1521
时间:2021-03-14 13:08:23
作者:admin
C语言可不可以重载?
1. 不支持C语言的语法设计。早期的C编译器没有考虑函数重载函数,因此会有很多类似的函数,如ABS、labs、fabs等(每种类型都必须考虑不同的函数名)。
2. C语言标准规定,同一范围内的两个函数不允许同名。C语言有两个相关字段,一个是编译器字段,另一个是链接器字段。编译器的字段主要是变量的可见范围,而链接器的字段称为文件字段,整个局部区域可能会跨越几个文件字段,所以只要用static修改两个同名函数,在不同的文件中,它们就不会冲突。但是,这实际上超出了编译器的范围。看起来两个函数有相同的名称,但实际上,编译器为链接器生成相同的函数地址。
3. 函数重载是编译时的一种行为,主要是通过名称弄乱来生成不同的汇编符号,使链接器能够正确链接代码。
4. 然而,C语言作为一种具有超函数的底层语言,有一种模拟函数重载的方法。这就是函数指针。最简单的例子是qsort函数。此函数可以传递函数指针变量。通过不同的函数指针,可以对不同的数据类型执行相同的qsort操作,这在某种程度上相当于函数重载。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。