会typedef int (&rifii) (int, int)用什么?
这个"声明"之前的typedef是什么?我想把它想象成这样
typedef (int (&rifii) (int, int)) [new name]
Run Code Online (Sandbox Code Playgroud)
但如果你这样做的话,[新名字]并不存在
typedef int INTEGER;
Run Code Online (Sandbox Code Playgroud)
类似的问题,以下语法:
typedef void (*PF) ();
PF edit_ops[ ] = { &cut, &paste, ©, &search };
PF file_ops[ ] = { &open, &append, & close, &write };
PF* button2 = edit_ops;
PF* button3 = file_ops;
button2[2]( );
Run Code Online (Sandbox Code Playgroud)
什么是typedef允许?它是否正在制作,因此您无需键入:
void (*PF) ();
(void (*PF) ()) edit_ops[ ] = { &cut, &paste, ©, &search };
(void (*PF) ()) file_ops[ ] = { &open, &append, …Run Code Online (Sandbox Code Playgroud) 如果我想typedef为某个类型声明一个,我会在这个例子中使用类似这样的语法:
typedef int INT
Run Code Online (Sandbox Code Playgroud)
但是当我想创建一个typedef函数时,我期待以下语法:
typedef void (*)(int, char) myfunc;
Run Code Online (Sandbox Code Playgroud)
相反,正确的是:
typedef void (*myfunc)(int, char);
Run Code Online (Sandbox Code Playgroud)
那么为什么第一个不正确呢?