我有一个疑问,有没有可能创造一个

typedef struct whatever

如果一个功能需要:
void function(char * something);

在主程序中调用函数时,请编写:
function((char *) whatever);

是这样吗?
谢谢您!

最佳答案

没有将结构强制转换为任何指针类型的定义行为。编译器很可能会拒绝这样的强制转换,但是如果它接受了它,那么生成的行为就不太可能有用。
此外,不能将类型(即whatever)作为函数参数传递。
可以想象,您可以将指针传递给您类型的对象:

int main() {
    whatever my_whatever = { 0 };
    function((char *) &my_whatever);
}

对于“工作”的某些定义来说,这是可行的。是否合理取决于function()的实现。

关于c - C中一个函数的类型转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30677574/

10-11 16:49