- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道__attribute__((nonnull))
是标准C还是编译器特定的。如果是特定于编译器的,那么是否有其他方法可以对标准C进行相同处理。
在这里,我试图防止静态分析器可能出现的空指针取消引用警告。但是我不想让我的代码编译器依赖。
最佳答案
它是特定于编译器的。在C11 standard的任何地方都没有提及属性和nonnull。
在C11中,可以使用type ParameterName[static 1]语法,但是如果您传递NULL参数,则只有clang和zapcc(在gcc <= 7.1和clang> = 3.1,zapcc和icc中)会生成警告。
(不幸的是,它不能与空指针一起使用)。
__attribute__((__nonnull__)) /*nonstandard*/
void pass_nonnull0(char *X)
{
}
void pass_nonnull1(char X[static 1]) /*standard*/
{ /*the "static 1" means the pointed-to "array" must have at least 1 element*/
}
int main()
{
pass_nonnull0(0); /* both clang & gcc warn with nonnull attributes */
pass_nonnull1(0); /* only clang and zapcc warn with type ArgName [static 1] */
}
A declaration of a parameter as ''array of type'' shall be adjusted to ''qualified pointer to type'', where the type qualifiers (if any) are those specified within the [ and ] of the array type derivation. If the keyword static also appears within the [ and ] of the array type derivation, then for each call to the function, the value of the corresponding actual argument shall provide access to the first element of an array with at least as many elements as specified by the size expression.
关于c - 是__attribute __((nonnull))是标准C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45237148/
我正在使用 IntelliJ 13.1.5 和 Java 8 SDK,我已经设置了 IntelliJ 内置的空性检查器以使用 checkers.nullness.quals.NonNull 作为我选择
Lombok's @NonNull VS javax.annotation.Nonnull 哪个更适合用于方法参数以及何时使用? The answer here模糊地比较了所有注释,但无法推断出哪一个
这两个注解有什么区别? org.jetbrains.annotations.NonNull android.support.annotation.NonNull kotlin 编译器 IntelliJ
这是我的数据代码: import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.Primary
Java 允许将参数和返回标记为 @Nonnull。 对我来说,这感觉是一种不好的做法,我不想在 99% 的用例中告诉它它不应该为 null 并用无用的噪音污染代码。 相反,我更愿意告诉它 - 给定包
我要安装Pushe plugin对于 flutter ,但我遇到了这个错误: 我什至将这一行添加到 native 导入中: 导入 android.support.annotation.NonNull;
我想我会更深入地研究旧的 Java 功能,例如注释。我遇到了 Java 8 类型注释,它使我们能够扩展 Java 类型系统。IntelliJ 注释库或 Checkerframework 中最常见的注释
我的 Controller 中有以下方法: @PostMapping("/register") public String registerNewUser(@Valid User user,
我是 @Nonnull 注释的新手。 我尝试使用它并编写了以下测试: public class TestNonull{ public static void doSmth(@Nonnull I
我不明白 NonNull 注释应该如何提供帮助。所以,假设我有这个: void noNullArg(@NonNull Object o) { // stuff } 如果我这样做,我会收到一条关
我的类的一个 String 成员变量是 Optional。用 Lombok 注释 @NonNull 标记它是否有意义? 如果成员变量是Map而不是String,我想问同样的问题。答案会改变吗? 最佳答
我正在使用 org.eclipse.jdt.annotation.NonNull 为静态空值分析添加额外信息。我不知道如何正确注释数组: 我怎么能说数组引用是非空的? 我怎么能说数组由非空元素组成?
虽然我认为应该有一个关于是否继承注释的通用规则,但我特别感兴趣的是让 FindBugs 识别我的规则,所以这个问题是 FindBugs 特定的。 据我所知,JavaDoc 注释取自接口(interfa
我的问题是 this one 的后续问题。 . 在过去的 FindBugs 版本中,可以使用 @DefaultAnnotation(Nonnull.class) 或 @DefaultAnnotatio
@nonnull inflater 错误,谁能解决这个错误?我是 android 的新手,我不知道如何解决这个错误的任何解决方案?是主题错误还是其他原因,我的代码有什么大问题吗??你能解决这个错误吗?
这个问题在这里已经有了答案: Non-nullable string type, how to use with Asp.Net Core options (1 个回答) 2年前关闭。 我有一个在 E
我知道使用方法nonnull和 nullable是 nonnull: the value won’t be nil; bridges to a regular reference. nullable:
我在这段代码上遇到了这个错误。 You must annotate primary keys with @NonNull. "uidString" is nullable.当我用@NonNull 和@
这个问题在这里已经有了答案: Meaning of Android Studio error: Not annotated parameter overrides @NonNull paramete
我想在我的应用程序中使用 FindBugs 来检测空指针故障,我关心的是代码 public class Test { public static void main(String[] args
我是一名优秀的程序员,十分优秀!