C中一个函数中的类型转换

type-conversion in one function in C

我有一个疑问,是否可以创建一个

typedef struct whatever

然后如果一个函数需要:

void function(char * something);

在主程序中调用函数时写:

function((char *) whatever);

对吗?

谢谢!

没有定义将结构转换为任何指针类型的行为。您的编译器很可能会拒绝这样的转换,但如果它接受了它,那么由此产生的行为就不太可能有用。

此外,您不能将 type(即 whatever)作为函数参数传递。

你可以想象传递一个指针到你的类型的对象:

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

对于 "work" 的某些定义,这将起作用。是否明智取决于function().

的实现