gpt4 book ai didi

c - 检测从 void * 到错误指针类型的转换

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:10 24 4
gpt4 key购买 nike

例如:

int *k;
void* c=(void*)&k;
char* x=(char*)c;//outputs a warning or an error
int *g=(int *)c;//compiles successfully(without warnings)

int *gg = malloc(sizeof(int)); //compiles successfully(without warnings)

是否可以使用 gcc 或任何其他编译器实现此目的?

最佳答案

简短的回答是否定的。一旦将指针指向 void*,您就会丢失所有类型信息。

假设您将 void* 传递给不同翻译单元中的函数。编译其他翻译单元时,编译器无法验证您对该指针所做的任何操作的语义。

如果您希望编译器强制执行强类型,请不要使用 void*

关于c - 检测从 void * 到错误指针类型的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com