abstract: 在类型定义中,此注解定义类型为抽象类型。在定义它的文件之外,代码将无法引用它,除非抽象类型名称在模块中定义。mutable: 定义为 mutable 的类型通过引用传递给函数。immutable: 定义为 immutable 的类型通过值传递给函数。
globals: 指示函数可以使用哪些全局变量。
modifies: 指示函数可以修改哪些外部变量。only: 带有此注解的指针引用的对象仅由此指针引用。 这是检测内存泄漏的一个非常重要的工具。
observer: 指示对具有此定义的函数的调用不能修改返回值。
exposed: 出于效率原因,允许忽略抽象定义。 它类似于 C++ 的 friend 子句。
in: 指示此函数参数是一个函数调用参数。out: 指示此函数参数是一个返回参数。null: 定义的指针可以为 NULL。 默认情况下,没有此注解的指针不能赋值为 NULL。
truenull: 如果其第一个参数为 NULL,则带注解的函数返回 TRUE。falsenull: 如果其第一个参数为 NULL,则带注解的函数返回 FALSE。notnull: 定义的指针不能为 NULL。 一旦测试了带有 NULL 注解的变量,此注解将用于覆盖 NULL 注解。
exits: 带注解的函数将永远不会返回。trueexit: 如果其第一个参数为 TRUE,则带注解的函数不会返回。 此注解与 assert 宏结合使用很有用。
falseexit: 如果其第一个参数为 FALSE,则带注解的函数不会返回。 此注解与 assert 宏结合使用很有用。 sef: 函数调用参数的计算不能产生副作用。 它有助于避免宏函数中副作用造成的错误。 alt: 此注解允许代码转换为指示的类型。 unused: 指示的元素将不会被使用。
任何一个修饰符都使用此格式调用
LCLint其中modifiers-file是修饰符的列表,其中每个修饰符前面都有一个+用于激活和一个-用于停用。 修饰符也可以使用注解从代码中调用+modifier打开修饰符指定的操作,并且-modifier关闭该操作。