我有一个疑问,有没有可能创造一个
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/