use*_*982 10 c integer casting function void
我试图找出从C中的void*函数调用返回一个整数的正确方法.
即......
#include <stdio.h>
void *myfunction() {
int x = 5;
return x;
}
int main() {
printf("%d\n", myfunction());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但我一直在:
警告:返回从整数中生成指针而不进行强制转换
我需要做一个演员来完成这项工作吗?它似乎没有问题地返回x,真正的myfunction返回指向结构和字符串的指针,它们都按预期工作.
小智 8
你在这里想要完成的事情并不明显,但是我假设你正在尝试用x进行一些指针运算,并希望x是这个算术的整数,但是返回时是一个void指针.在没有理解为什么这样做或没有意义的情况下,您可以通过将x显式地转换为void指针来消除警告.
void *myfunction() {
int x = 5;
return (void *)x;
}
Run Code Online (Sandbox Code Playgroud)
这很可能会引发另一个警告,具体取决于系统如何实现指针.您可能需要使用long而不是int.
void *myfunction() {
long x = 5;
return (void *)x;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49681 次 |
| 最近记录: |