首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Doxygen/Objective-C:如何在类docs中显示在类定义之外声明的常量?

在Doxygen中,可以使用特殊的注释格式来显示在类定义之外声明的常量。对于Objective-C,可以按照以下步骤进行操作:

  1. 在类定义之外声明常量时,使用extern关键字来指示该常量是在其他地方定义的。
  2. 在常量声明的上方使用特殊的注释格式来提供文档说明。这个注释格式是以///开头的单行注释。

下面是一个示例:

代码语言:objective-c
复制
/// 这是一个示例常量
extern NSString *const ExampleConstant;

@interface ExampleClass : NSObject

// 类定义...

@end

在上面的示例中,ExampleConstant是一个在类定义之外声明的常量。通过使用///注释格式,我们可以为这个常量提供文档说明。

请注意,这只是一种在Doxygen中显示在类docs中声明的常量的方法。在实际使用中,您可能还需要根据您的项目和代码结构进行适当的调整。

关于Doxygen的更多信息和用法,请参考腾讯云文档中的Doxygen使用指南

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android Gradle 插件】自定义 Gradle 插件模块 ④ ( META-INF 中声明自定义插件的核心类 | 在应用中依赖本地 Maven 仓库中的自定义 Gradle 插件 )

文章目录 一、META-INF 中声明自定义插件的核心类 二、在应用中依赖本地 Maven 仓库中的自定义 Gradle 插件 Android Plugin DSL Reference 参考文档 :.../han1202012/Android_UI 一、META-INF 中声明自定义插件的核心类 ---- 参考 Android Gradle 插件内容 , 将 Android Studio 的 Project...面板中的 External Libraries 展开 , 在 Android Gradle 插件中 , 需要在 META-INF/gradle-plugins/插件组名.插件名.properties...文件中 , 声明该 自定义插件的 implementation-class=org.gradle.api.plugins.antlr.AntlrPlugin 在自己的自定义插件中 , 也需要进行上述配置...Maven 仓库中的自定义 Gradle 插件 ---- 依赖本地 Maven 仓库 , 并导入 自定义 Gradle 插件 依赖 ; buildscript { repositories {

1.5K10

利用Doxygen生成代码文档

Doxygen是一个代码文档生成工具。它从代码文件中提取注释并可生成多种文档形式。如:网页文档HTML,RTF (MS-Word),PDF等等。同时也可生成函数之间的调用和文件的依赖关系图表。...其实还有其他的风格。可以查看下面的网址了解: https://www.doxygen.nl/manual/docblocks.html#cppblock 文档中对应的显示效果如下。...Trajectory related parameters是对结构体的描述。 下面的//!声明的类成员的描述。...A more elaborate class description. */ 如果希望生成的文档中包含源码,则需要如下配置 图片 生成文档 在具有Doxyfile配置文件的目录下运行doxygen即可生成文档...doxygen 也可以在doxywizard里点击运行doxygen来生成文档。 图片

1.8K40
  • Objective-C 中 9 种避免使用 Xcode 预处理器宏的方法

    不幸的是,还有很多的 Objective-C 程序员尚未领悟到这一点。 本文是Objective-C 中的代码气味系列文章中的一篇。 这是一个可以在终端运行的便捷命令。...除非您的自定义宏依赖于 Xcode 预处理器宏(如__LINE__),否则请将其重写为一个独立函数。(即便依赖于 Xcode 预处理宏,也要让您的宏调用另一个函数,并尽可能多地转移到该函数中)。...,在一个实现文件中创建一个定义。...只不过,这次我们定义的是一个常量字符串,它实际上是一个对象,在 Objective-C 中表示为指针。因此,我们要定义一个常量指针。...常量字符串通常在多个文件中共享,因此这里介绍如何在 .h 文件中声明常量: extern NSString *const JMRResponseSuccess; 因此,.m 文件中的定义是 NSString

    14610

    Objective-C 与 泛型

    Objective-C 与 泛型 从 Xcode 7 开始,为了更简单和高效的与 Swift 交互, Objective-C 支持了引入了 3 个高级特性:轻量泛型、Nullability annotation...轻量泛型 可以让开发者执行集合类的类型信息,并且支持与 Swift 的泛型系统进行相互转化。 为什么使用 轻量泛型?...通常情况下,我们使用下面的语法声明数组: NSArray *dates; 通过在类型后面添加 ,我们可以告诉编译器:这个数组只接受 NSDate 类型的实例。...: NSObject *> 2、在实例方法或者类方法中,使用 T 代替普通的类型声明 - (void)setObject:(U)obj forKeyedSubscript:(T)key; 验证 下面...image-20210105223959567 我们简单对上面的语法树进行讲解: ObjCInterfaceDecl 代表类的声明,本例中是 KKMutableDictionary 随后,是父类 NSObject

    91210

    NumPy 1.26 中文文档(五十三)

    一些在 C 扩展模块中定义的函数/对象,如 numpy.ndarray.transpose, numpy.array 等,在_add_newdocs.py中有其单独定义的文档字符串。...doxygengroup 这个指令生成 Doxygen 组的适当输出。可以使用特定的 Doxygen 标记在源注释中声明 Doxygen 组,详见 doxygen 分组文档。...一些函数/对象,如 numpy.ndarray.transpose、numpy.array 等,在 C 扩展模块中定义,其文档字符串在_add_newdocs.py中单独定义。...doxygengroup 此指令会为 doxygen 组的内容生成相应输出。可以在源注释中使用特定的 doxygen 标记来声明 doxygen 组,详见 doxygen 分组文档。...doxygengroup 此指令用于生成 doxygen 组的内容适当输出。可以通过源代码注释中的特定 doxygen 标记声明 doxygen 组,详见 doxygen 的分组文档。

    13310

    常量和枚举

    ,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝 如果在一个指定单一类里声明常量...; 如果常量属于一个类,但又要其他类可以访问,在头文件将其声明为 extern ,在.m文件定义 //.h extern NSString *const MyThingNotificationKey;...//.m NSString *const MyThingNotificationKey = @"MyThingNotificationKey"; 如果它们是全局的常量,在头文件声明,并在相应模块里定义...如何选择 尽量选择使用const,因为编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率比宏定义要高。...---- update at May 20 关于命名规范 常量名(如宏定义、枚举、静态局部变量等)应该以小写字母k开头,使用驼峰格式分隔单词,如:kInvalidHandle,kWritePerm。

    53020

    Swift基础 基础知识

    常量的值一旦设置就无法更改,而变量将来可以设置为不同的值。 声明常量和变量 常量和变量在使用之前必须声明。您可以使用let关键字声明常量,并使用var关键字声明变量。...您可以在一行上声明多个常量或多个变量,用逗号分隔: var x = 0.0, y = 0.0, z = 0.0 注意 如果代码中的存储值不会更改,请始终将其声明为带有let关键字的常量。...如果您在定义的点为常量或变量提供初始值,Swift几乎总是可以推断用于该常量或变量的类型,如类型安全和类型推断中所述。...如果代码中的常量或变量在某些条件下需要在没有值的情况下工作,请始终将其声明为适当类型的可选值。...Swift中隐式未包装的可选选项的主要用途是在类初始化期间,如Unowned References和Imlicitly Unwrapped Optional Properties中所述。

    15500

    Swift 类和结构体

    } 在上面的示例中我们定义了一个名为Resolution的结构体,用来描述一个显示器的像素分辨率。这个结构体包含了两个名为width和height的存储属性。...存储属性是被捆绑和存储在类或结构体中的常量或变量。当这两个属性被初始化为整数0的时候,它们会被推断为Int类型。...在上面的示例中我们还定义了一个名为VideoMode的类,用来描述一个视频显示器的特定模式。这个类包含了四个变量存储属性。...Swift 中的这些引用与其它的常量或变量的定义方式相同。 类和结构体的选择 在你的代码中,你可以使用类和结构体来定义你的自定义数据类型。 然而,结构体实例总是通过值传递,类实例总是通过引用传递。...这意味着被赋值给新的常量或变量,或者被传入函数或方法中时,它们的值会被拷贝。 Objective-C 中NSString,NSArray和NSDictionary类型均以类的形式实现,而并非结构体。

    1.2K40

    Swift的属性,方法,下标脚本以及继承

    在Objective-C中,我们总是无法改动结构体的子属性,可是swift却能够,只是这样的情况是个例外,当你存储型属性是个结构体而且是个常量,那你就不要再试图去改动这个结构体的子属性了。...而类属于引用类型,即使声明为常量我们也能够改动。 延迟载入存储属性 延迟载入我们又称为懒载入,在Swift中提供了一个@lazy用于声明懒载入的属性....一个简单的枚举,在next()函数中完毕了对self的切换。 类方法 上面提到过,类方法值类型如结构体使用static,而引用类型,比如类则使用class。...另外假设我们在没有实例时,比如在类方法中,使用了self,则self指向这个类型而不是实例。比如Objective-C中的[[self alloc] init]写法。...在这里,下标脚本通常能够用于定义在类,结构体和枚举中,我们能够自己定义快捷的訪问方式通过使用下标脚本。对于同一个目标我们能够通过对其函数重载的方式定义多重方式的下标脚本訪问。

    88410

    doxygen教程_genedoc教程

    到上一步Doxygen已经完全配置好,可以在Run中点击运行了,但为了保存以上配置信息,可以将配置好的文件存一个.cfg文件,之后再运行Doxygen时只需要将该文件用Doxygen打开,改变第(1)步中的输入...10.Run->Run Doxygen  即可运行Doxygen,运行完成后在输出目录中的html文件夹中找到index.chm文件即为输入代码的文档说明。...3.先从文件开始注释,然后是所在文件的全局函数、结构体、枚举变量、命名空间→命名空间中的类→成员函数和成员变量。 4.Doxygen无法为DLL中定义的类导出文档。...它被设计为实现一个“lazy”的group定义方法:可以在.h文件中使用高优先级来定义结构,在.cpp文件中使用\weakgroup这样不会重复.h文件中的层次结构。  ...在实际使用中,我们可以看到具体的网页展示如下。   在图中有个BSP下的LED模块,这个模块就是承载驱动文件LED。具体代码如下,为了显示效果,我把函数的注释删除了。

    4.5K30

    Swift基础 结构和类

    在Swift中,您在单个文件中定义结构或类,该类或结构的外部接口会自动供其他代码使用。 注意 类的实例传统上被称为对象。...} 上面的示例定义了一个名为Resolution的新结构,以描述基于像素的显示分辨率。这种结构有两个存储属性,称为width和height。存储属性是捆绑并作为结构或类的一部分存储的常量或变量。...上面的示例还定义了一个名为VideoMode的新类,以描述视频显示的特定视频模式。该类有四个变量存储属性。...与类类型的两个常量或变量引用完全相同的类实例相同。等于意味着两个实例在值上被认为是相等或等价的,对于类型设计器定义的相等的适当含义。...当您定义自己的自定义结构和类时,您有责任决定什么符合两个相等的条件。定义自己实现==和的过程!=运算符在等效运算符中描述。

    9900

    CMake 秘籍(七)

    如何操作 首先,让我们讨论根目录中的CMakeLists.txt文件: 如您所熟悉,我们声明一个 C++11 项目,如下所示: cmake_minimum_required(VERSION 3.5 FATAL_ERROR...如果你导航到类列表,你可以例如浏览Message类的文档: 工作原理 CMake 默认不支持文档构建。但是,我们可以使用add_custom_target来执行任意操作,这是我们在本食谱中利用的机制。...CMake 3.9 中添加了一个新的改进的FindDoxygen.cmake模块。实现了便利函数doxygen_add_docs,它将作为我们在本食谱中介绍的宏。...启动浏览器打开index.html文件后,您可以导航到Message类的文档: 工作原理 您会注意到,尽管在声明自定义BREATHE_DOC_TARGET_NAME目标时只给出了对 Sphinx 的调用...或者,可以通过使用检测器抑制来将 Python 绑定排除在检测之外,如github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions所述。

    20100

    OC代码规范1——多用类型常量,少用#define预处理指令

    2,若常量在类之外可见,则通常以类名为前缀,如:CustomClassAnimationDuration 不打算公开某个常量 如果我们不打算公开某个常量,只想在某一个类中使用该常量,那么就将其定义在使用该常量的类的实现文件中...需要对外公开某个常量 在做项目的时候,我们肯定会需要定义很多全局的常量,此类变量需要放在“全局符号表”(global symbol table)中,以便可以在定义该常量的编译单元之外使用。...此时就需要创建一个继承自NSObject的类Contact,在Contact.h文件中声明常量,在Contact.m文件中定义常量,然后将Contact文件放入.pch文件中。...由于此类常量不在全局符号表中,所以无需为其名称加前缀。 4,在头文件中使用extern来声明全局常量,并在相关实现文件中定义其值。...由于此类常量会出现在全局符号表中,所以常量的名称需要以与之相关的类名做前缀。 5,使用extern const来声明的全局常量,必须并且只能初始化一次,如果对其多次初始化,那么编译器会报错。

    1.5K30

    Swift基础 方法

    类、结构和枚举都可以定义实例方法,这些方法封装了处理给定类型实例的特定任务和功能。类、结构和枚举还可以定义类型方法,这些方法与类型本身相关联。类型方法类似于Objective-C中的类方法。...结构和枚举可以在Swift中定义方法,这一事实与C和Objective-C有很大区别。在Objective-C中,类是唯一可以定义方法的类型。...在 Swift 中,您可以选择是定义类、结构还是枚举,并且仍然可以灵活地定义您创建的类型上的方法。 实例方法 实例方法是属于特定类、结构或枚举实例的函数。...它们支持这些实例的功能,要么通过提供访问和修改实例属性的方法,要么通过提供与实例目的相关的功能。实例方法具有与函数完全相同的语法,如函数中所述。 您可以在它所属类型的打开和关闭大括号中编写实例方法。...注意 在Objective-C中,您只能为Objective-C类定义类型级方法。在 Swift 中,您可以为所有类、结构和枚举定义类型级方法。每个类型方法都显式扩展到它支持的类型。

    9600

    【工具】这个神器可以提取你代码中的关键信息生成技术文档

    这里覆盖了C语言标准库中的所有函数,给出了每个函数的介绍并且都给出了具体的用法示例,比如: ? ? 只不过都是英文的说明,可见英文的重要性。...其中doxygen是一种开源跨平台的文档系统,doxygen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。...支持的语言有好多种,如C/C++/C#/Objective-C/PHP/Java等。这里主要是分享C语言,Doxygen可以识别的固定格式注释有以下几种: ? ? ? ? ? ? ?...这里,我使用第一种,如: /** * 函数功能:字符串逆序函数 * @param src_str:字符串 * @param str_len:字符串长度 * @return 逆序之后得到的字符串...(6)设置一些构建的选择项 ? (7)设置输入文件的编码 ? (8)设置是否在.chm中生成源码以供预览 ? (9)设置HTML选项 ? (10)设置Dot选项 ? ?

    1.8K20

    iOS小技能:装箱和拆箱(boxing、unboxing)​

    而bool表示0是false,所以非0是true; 2.1 NSCFBoolean NSCFBoolean是NSNumber类簇中的一个私有的类,它是通往CFBooleanRef类型的桥梁。...NSCFBoolean被用来给Core Foundation的属性列表和集合封装布尔数值。 CFBoolean定义了常量kCFBooleanTrue和kCFBooleanFalse。...比如,@[@"A", @NO, @2.718] → [NSArray arrayWithObjects:@"A", @NO, @2.718, nil] (注意在数组常量中结束标记nil是不需要的)。...2.2 Objective-C 常量 选择器和协议可以作为方法参数。@selector()和@protocol()作为伪常量指令返回一个指向特定选择器(SEL)或协议(Protocol *)的指针。...-conformsToProtocol: 2.3 全局的const常量代替宏常量,节省内存空间。 使用字符串常量来代替宏的使用 定义const 全局常量 ,保证只在一处定义,多处进行引用。

    58310

    Swift 属性

    属性观察器可以添加到自己定义的存储属性上,也可以添加到从父类继承的属性上。 存储属性 简单来说,一个存储属性就是存储在特定类或结构体实例里的一个常量或变量。...也可以在构造过程中设置或修改存储属性的值,甚至修改常量存储属性的值,请参考构造过程中常量属性的修改一节。...存储属性和实例变量 如果您有过 Objective-C 经验,应该知道 Objective-C 为类实例存储值和引用提供两种方法。除了属性之外,还可以使用实例变量作为属性值的后端存储。...全局变量和局部变量 计算属性和属性观察器所描述的功能也可以用于全局变量和局部变量。全局变量是在函数、方法、闭包或任何类型之外定义的变量。局部变量是在函数、方法或闭包内部定义的变量。...类型属性语法 在 C 或 Objective-C 中,与某个类型关联的静态常量和静态变量,是作为全局(global)静态变量定义的。

    85110

    面向 C++ 的现代 CMake 教程(四)

    这可以警告我们的代码格式不正确,甚至在我们允许的情况下修复突出显示的问题。...REQUIRED关键字将在找不到二进制文件时停止配置并显示错误。 在target上启用 Clang-Tidy,提供二进制文件的路径和自定义选项以启用所有检查,并将警告视为错误。.../img/Figure_10.1_B17205.jpg) 图 10.1 – 使用 Doxygen 生成的类参考 你可以在成员函数文档中看到的额外描述是通过在头文件中添加适当注释来实现的: chapter...正如您所想象的,最好在Doxygen函数中调用这个宏,在doxygen_add_docs()之前,像这样: chapter-10/02-doxygen-nice/cmake/Doxygen.cmake...除此之外,请记住我们应该将所有生成的文件存储在构建树中。 可选地,我们可以传递一个显式的VERSION(这里支持常用的格式,major.minor.patch)。

    67700

    Swift基础 属性

    您还可以使用属性包装器在多个属性的获取器和设置器中重用代码。 存储的属性 在最简单的形式中,存储属性是作为特定类或结构实例的一部分存储的常量或变量。...存储属性和实例变量 如果您有Objective-C的经验,您可能知道它提供了两种存储值和引用作为类实例的一部分的方法。除了属性外,您还可以使用实例变量作为存储在属性中的值的备份存储。...全局变量是在任何函数、方法、闭包或类型上下文之外定义的变量。局部变量是在函数、方法或闭包上下文中定义的变量。 您在前几章中遇到的全局变量和局部变量都已存储。...这些类型的属性称为类型属性。 类型属性可用于定义特定类型所有实例通用的值,例如所有实例都可以使用的常量属性(如C中的静态常量),或存储该类型所有实例的全局值的变量属性(如C中的静态变量)。...类型属性语法 在C和Objective-C中,您将与类型关联的静态常量和变量定义为全局静态变量。

    23500
    领券