1.当然不支持……除非用一大把的MACRO来模拟,并且可能存在严重的Bug……
2.C语言标准就规定不允许同一作用域中两个函数重名。
和C语言相关的域有两种,一个是给编译器看得,还有一种是给链接器看的,而给编译器看的这种域主要是关于变量的可见范围,而链接器看到的那个是叫文件域,而全局域可能要跨越好几个文件域,这样只要两个同名函数用static修饰,并且在不同的文件中,就不会冲突……
不过这个实际上已经超越了编译器的范围,到达了链接器的管理区域了……表面看起来两个函数同名,但是实际上编译器为链接器产生的符号已经有了差别……
3.另外,函数重载是一个编译期行为,主要是通过name mangling来产生不同的汇编符号,让linker可以正确的link代码……
阅读(3690) | 评论(0) | 转发(0) |