请解释这样的原型是什么意思
void *runner(void *param)
Run Code Online (Sandbox Code Playgroud)
首先,void* runner和之间绝对没有区别void *runner.该函数的名称是runner.其次,可以声明一个函数void,它只是意味着它根本不返回任何东西.
但是这个签名是不同的.它返回一个void*,它只是指向未指定数据类型的指针.或者更容易思考它,它返回一个内存地址.
同样的void *param,它只是接受一个内存地址.
编辑
这可能会让它更清晰一些:
void func(void *ptr); // take in a generic memory address, return nothing
void *func(void *ptr); // take in a generic memory address, return similar
void *func(void); // Function takes no parameters (necessary in C, optional in C++)
void *func(void param); // Invalid! As you guessed, this would be pointless.
void *func(); // Preferred syntax in C++, function takes in nothing and returns a generic memory address
// In C this means it takes an undetermined number of arguments
void func(); // In C++: function takes in nothing, returns nothing
// In C: function takes in an undetermined number of arguments, returns nothing
Run Code Online (Sandbox Code Playgroud)