指针缺少可空性类型说明符(_Nonnull、_Nullable或_Null_unspecified)

指针缺少可空性类型说明符(_Nonnull、_Nullable或_Null_unspecified),c,xcode,pointers,C,Xcode,Pointers,在C语言中,我是否需要为每个指针指定一个可空性类型说明符?我刚刚创建了一个XCode项目(C),并尝试运行一个函数: char * someFunction(void); 我得到了警告 Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) 我不知道C中的指针需要nullability类型说明符 只是说,一切都很好。只是有很多警告(很多函数),这让我有点担心。注意所

在C语言中,我是否需要为每个指针指定一个可空性类型说明符?我刚刚创建了一个XCode项目(C),并尝试运行一个函数:

char * someFunction(void);
我得到了警告

Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
我不知道C中的指针需要nullability类型说明符


只是说,一切都很好。只是有很多警告(很多函数),这让我有点担心。

注意所有的“nullability说明符”都以下划线开头,后跟大写字母?这些符号在编译器自身的所有作用域中都是保留的。这意味着它是C语言的一个不可移植的特定于编译器的扩展。这是否意味着我必须有一个空性说明符?它不是标准C的一部分。它是一个警告,不是一个错误。这可能是一个你可以禁用的警告。所以这里没有“必须”,编译器只需要友好的余数来添加它,可能是为了进行一些额外的编译时检查。@Someprogrammerdude:不要建议人们忽略你不理解的东西。OP正在苹果的环境中构建。可空性信息用于与Swift交互。他们的项目可能未配置为纯C项目,在这种情况下,禁用警告和忽略问题可能会导致某些功能无法正常运行。请注意,所有“nullability说明符”都以下划线开头,后跟大写字母?这些符号在编译器自身的所有作用域中都是保留的。这意味着它是C语言的一个不可移植的特定于编译器的扩展。这是否意味着我必须有一个空性说明符?它不是标准C的一部分。它是一个警告,不是一个错误。这可能是一个你可以禁用的警告。所以这里没有“必须”,编译器只需要友好的余数来添加它,可能是为了进行一些额外的编译时检查。@Someprogrammerdude:不要建议人们忽略你不理解的东西。OP正在苹果的环境中构建。可空性信息用于与Swift交互。他们的项目可能未配置为纯C项目,在这种情况下,禁用警告并忽略问题可能会导致某些功能无法按预期运行。