图: https://imgur.com/a/lTOsLcB
我知道typedef是用来扩充原本的data type。比如:
typedef unsigned char bool; //bool = unsigned char
但在这张图中:
typedef void (*V_FLOAT_CALLBACK) (int iFloatLevel);
我看不懂这边为什么要这样写,而且我也找不出它的规则
第二行的 static V_FOLAT_CALLBACK vFloatCallback = NULL;很明显地告诉我们此type是
V_FLOAT_CALLBACK。加上有一个小v在variable前,我很合理地推断出第一行应该是要写:
typedef void (*V_FLOAT_CALLBACK)
所以第二行的原式应该为:
void *vFloatCallback = NULL;
Q1: 那第一行是打错吗?后面的int iFloatLevel是多写的?
Q2: 为什么在typedef那行要有括号的存在? 我知道括号的功能是要用来防止优先权乱掉,
但根本不会有operator在type的前面吧?
谢谢各位