在函数前面加上回调、WINAPI或PASCAL(在MFC中)是绝对必要的还是仅出于可读性目的?

在函数前面加上回调、WINAPI或PASCAL(在MFC中)是绝对必要的还是仅出于可读性目的?,mfc,timer,callback,calling-convention,stdcall,Mfc,Timer,Callback,Calling Convention,Stdcall,在MFC VC++中,使用CALLBACK过程设置setTimer函数。我从报纸上读到的 标记为u stdcall的函数使用标准调用 之所以这样命名,是因为所有Win32 API函数(除了少数 使用它 这就是我所了解的,所有VC++MFC函数都使用\uu stdcall作为它们的调用转换 而回调的定义如下 #define CALLBACK __stdcall 我读到的: 在函数前面加上CALLBACK用于强调在必要时自动调用特定函数(如javascript中的setTimer案例或onCli

MFC VC++
中,使用
CALLBACK
过程设置
setTimer
函数。我从报纸上读到的

标记为u stdcall的函数使用标准调用 之所以这样命名,是因为所有Win32 API函数(除了少数 使用它

这就是我所了解的,所有VC++MFC函数都使用
\uu stdcall
作为它们的调用转换

回调
的定义如下

 #define CALLBACK __stdcall
我读到的: 在函数前面加上CALLBACK用于强调在必要时自动调用特定函数(如javascript中的
setTimer
案例或
onClick
案例)

我怀疑的是,在MFC VC++中,所有函数(除了少数
具有默认调用约定uu stdcall。因此,在带有
回调
WINAPI
PASCAL
的函数前面或不前面都有相同的效果?

这对计算机来说是绝对必要的吗?这取决于上下文,您可能会幸运,因为堆栈上的数据类型恰好与API的要求相匹配,也可能会在每次代码丢失和崩溃时惨遭失败


对于维护程序员来说这是绝对必要的吗?是的。你知道,可怜的人必须找出你的非标准约定和聪明的“优化”。总有一天,那个可怜的人可能就是你

当你试图破坏API时