当前位置:  开发笔记 > 编程语言 > 正文

为什么win32 API函数没有重载,而是使用Ex作为后缀?

如何解决《为什么win32API函数没有重载,而是使用Ex作为后缀?》经验,为你挑选了2个好方法。

win32 API有两个方法StrFormatByteSize和StrFormatByteSizeEx.即使两个方法在语义上做同样的事情,并且Ex计数器部分只提供一个新参数来稍微改变行为,那么它们不能有两个相同函数的重载?

它是c/c ++的限制还是这种尴尬约定的可能原因是什么?



1> Roger Lipsco..:

Win32 API是一个C(而不是C++)API.C语言不支持重载函数.

完全放弃:Win32 API使用__stdcall-decorated函数,其中包括作为函数名称一部分的参数的字节数.__stdcall不是C语言的一部分,但Windows链接器必须知道它.

微软本可以用它来实现某种重载,但是(因为很多语言都不理解重载)会限制可用于编程Windows的语言数量.



2> Greg Hewgill..:

C语言根本不支持函数重载.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有