gpt4 book ai didi

c - C程序编译警告:assignment makes pointer from integer without a cast [enabled by default]

转载 作者:行者123 更新时间:2023-11-30 17:29:59 25 4
gpt4 key购买 nike

当我使用以下行编译名为 Online_ana.c 的程序(通过运行 makefile)时:

if ((fifoFile = open((FIFO1!=NULL) ? FIFO1 : "fifo1", O_RDONLY)) == -1)

遇到这样的警告:

Online_ana.c:54:17: warning: assignment makes pointer from integer without a cast [enabled by default]

这有什么问题吗?希望有人可以帮助我。提前致谢!!

最佳答案

这有几个问题。

1) 您正在为指针分配一个整数值。这并不总是错误的,但它是可疑的。这通常意味着一个错误,但也有一些情况是可以的。这就是编译器发出警告而不是错误的原因。您应该确保您是认真的。

2)就像@Barmar所说,open返回一个整数(文件句柄)而不是FILE*。如果您将其中一个分配给另一个,则是错误的。

3)稍微不相关,但在 if 中进行赋值和比较几乎总是一个坏主意。很容易在您想要 == 的地方意外键入 = 并导致错误。应避免使用 1 行进行赋值,1 行进行比较。我知道老式 C 风格是使用单行,但现在它被认为是一个坏主意。

关于c - C程序编译警告:assignment makes pointer from integer without a cast [enabled by default],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25369498/

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