大佬教程收集整理的这篇文章主要介绍了c – 使用extern“C”连接的过载分辨率,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有两种方法可以做到这一点:(1)使用一个外部“C”函数编写一个小的C包装器,该函数将调用转发到所选择的重载函数,或者(2)黑客方法来声明我们要调用的一个函数C作为extern“C”.
问题是,第二个变种有什么缺点(除了恶梦和坏业力)吗?换句话说,给定三个过载的函数,哪里被声明为ex“C”,我们应该期待C方面的麻烦,还是根据标准定义好?
complex sqrt(compleX); // C + + linkage by default extern "C" { double sqrt(doublE); // C linkage }
两点:1)举个例子,这不是规范性的. 2)它不直接声明这两个声明实际上是允许在同一个程序中.尽管如此,我认为它的意图是它可以被看作是一个单一的代码段,它给出了定义的行为.
在重读之后,我相信标准中的语言是专门用于写出一个具有“C”连接的函数,以及任意数量的具有“C”连接的其他函数,它们重载相同的名称(§7.5/ 6):
以上是大佬教程为你收集整理的c – 使用extern“C”连接的过载分辨率全部内容,希望文章能够帮你解决c – 使用extern“C”连接的过载分辨率所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。