我正在实现一些低级别的东西,需要"typedef"许多系统(Windows)功能.例如,这是一个测试函数,我想为钩子输入typedef:
BOOL WINAPI WindowsFunction(Param1: DWORD, Param2:DWORD, Param3:DWORD);
Run Code Online (Sandbox Code Playgroud)
而Typedef应该是:
typedef BOOL (WINAPI *TWindowsFunction)(Param1: DWORD, Param2:DWORD, Param3:DWORD);
Run Code Online (Sandbox Code Playgroud)
对于一些函数来说这是可以的,但是如果我想对上面的几十个函数进行上述操作,是否有一个快捷方式(比如"魔术#define")可以避免一次又一次地复制几乎所有的函数声明?像"神奇"一样:
#define TYPEDEF_FUNCTION(WindowsFunction....)
Run Code Online (Sandbox Code Playgroud)
谢谢!
C++ 11 decltype 可以这种方式使用,或者使用typedef或using:
typedef decltype(&WindowsFunction) TWindowsFunction;
Run Code Online (Sandbox Code Playgroud)
要么:
using TWindowsFunction = decltype(&WindowsFunction);
Run Code Online (Sandbox Code Playgroud)