gpt4 book ai didi

c - 警告 : return makes pointer from integer without a cast but returns integer as desired

转载 作者:太空狗 更新时间:2023-10-29 16:48:49 27 4
gpt4 key购买 nike

我正在尝试找出从 C 中的 void * 函数调用返回整数的正确方法。

即..

#include <stdio.h>

void *myfunction() {
int x = 5;
return x;
}

int main() {
printf("%d\n", myfunction());
return 0;
}

但我不断得到:

warning: return makes pointer from integer without a cast

我需要做 Actor 才能完成这项工作吗?它似乎可以毫无问题地返回 x,真正的 myfunction 返回指向结构和字符串的指针,它们都按预期工作。

最佳答案

您在这里试图完成的事情并不明显,但我假设您正在尝试对 x 进行一些指针运算,并且希望 x 是该运算的整数,但在返回时是一个空指针。在不了解为什么这样做有意义或没有意义的情况下,您可以通过将 x 显式转换为空指针来消除警告。

void *myfunction() {
int x = 5;
return (void *)x;
}

这很可能会引发另一个警告,具体取决于您的系统如何实现指针。您可能需要使用 long 而不是 int。

void *myfunction() {
long x = 5;
return (void *)x;
}

关于c - 警告 : return makes pointer from integer without a cast but returns integer as desired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18117376/

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