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()
.
的实现
我有一个疑问,是否可以创建一个
typedef struct whatever
然后如果一个函数需要:
void function(char * something);
在主程序中调用函数时写:
function((char *) whatever);
对吗?
谢谢!
没有定义将结构转换为任何指针类型的行为。您的编译器很可能会拒绝这样的转换,但如果它接受了它,那么由此产生的行为就不太可能有用。
此外,您不能将 type(即 whatever
)作为函数参数传递。
你可以想象传递一个指针到你的类型的对象:
int main() {
whatever my_whatever = { 0 };
function((char *) &my_whatever);
}
对于 "work" 的某些定义,这将起作用。是否明智取决于function()
.