gpt4 book ai didi

尽管未使用 Xcode,C 程序仍生成与 Xcode 相关的编译警告

转载 作者:行者123 更新时间:2023-11-30 18:51:39 26 4
gpt4 key购买 nike

在我正在从事的一个 C 项目中,我有一些相当无害的 return NULL;声明。这导致了一些我不太明白的奇怪的编译警告:

warning: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
return NULL;
^~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/_types/_null.h:29:15: note: expanded from
macro 'NULL'
#define NULL __DARWIN_NULL
^~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/_types.h:52:23: note: expanded from macro
'__DARWIN_NULL'
#define __DARWIN_NULL ((void *)0)
^~~~~~~~~~~

据我所知,我的项目中没有任何地方包含任何明显与 Xcode 相关的内容,我什至也没有在 Xcode 中进行开发(我在 Sublime Text 2 中进行编辑,如果重要的话,可以使用 gcc 进行编译),但是由于某种原因,我的环境似乎按照 Xcode 定义它的方式解释 NULL。诊断起来也是一件奇怪的事情,因为无论你相信与否,人们在 Xcode 中遇到的几乎每个开发问题都与在 Xcode 中进行开发有关。但既然我没有这样做,那么这个警告是从哪里来的呢?

最佳答案

该函数被声明为返回 int (或者可能没有指定特定的返回类型,在这种情况下,假定为 int),但您正在返回来自该函数的 NULL

如果函数应返回 int,则 NULL 不是合适的返回值(也许 0 可能是更好的选择)。如果函数应该返回指针类型,请确保该函数被声明为返回一个,而不是被声明为返回int

关于尽管未使用 Xcode,C 程序仍生成与 Xcode 相关的编译警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36394140/

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