CLion 2025.2 Help

头文件保护符

头文件保护符 是一种预处理器指令模式,用于防止头文件被多次包含。 头文件保护符将整个代码内容包裹在一个 #ifndef#if !defined 或其他类似)块中:

#ifndef MY_HEADER_H #define MY_HEADER_H //... #endif

编辑头文件模板

默认情况下,头文件保护符包含在指定新头文件初始内容的 文件模板 中。 如果您决定使用 #pragma once 替代头文件保护符,您可以编辑这些模板。 为此,请转到 设置 | 编辑器 | 文件和代码模板 并打开 个文件 选项卡。 从列表中选择 C 头文件C++ 类头文件 ,并更改模板内容:

文件模板中的头文件保护符

注意 字面量 语法包裹 #pragma once。 对于文件模板,CLion 使用 Apache Velocity 语言,该语言需要对 C/C++ 预处理器指令进行转义以正确解析它们。

    配置头文件保护符符号

    1. 头文件保护符符号(上例中的 MY_HEADER_H )应是唯一的,因此通常与文件名相关。 要配置头文件保护符符号的模式,请打开 命名约定 选项卡,在 设置 | 编辑器 | 代码样式 | C/C++ 中并在 头文件保护符 字段中指定模板:

      命名约定设置中的头文件保护符字段
    2. 您可以使用各种预定义变量,例如:

      • ${PROJECT_NAME} - 当前项目的名称。

      • ${PROJECT_REL_PATH} - 相对目标路径。 例如,如果项目位于 prj 目录中,目标文件是 prj/src/dir/header.h ,那么 ${PROJECT_REL_PATH} 将等于 src/dir

      • ${FILE_NAME} - 不带扩展名的目标文件名。

      • ${EXT} - 目标文件扩展名。

      • 您可以在 文件模板 中找到的其他变量,例如 ${USER}${DATE}

      有效的头文件保护符符号 可以包含以下字符 :大写 'A-Z' 和小写 'a-z' 字母、下划线符号 _ 、数字(但不能以数字开头)以及美元符号 $。 请注意,CLion 会为以数字开头的符号添加 INC_ 前缀,并使用 INC_${UUID} 模式替换无效符号。

    3. 配置的符号将替换头文件模板中的 ${INCLUDE_GUARD} 变量。 CLion 会在 创建 新建 C/C++ 类和头文件时应用该模式。 此外,如果您 重命名 类或文件,与当前配置样式匹配的头文件保护符将使用新名称更新:

      文件重命名时头文件保护符模板的自动更改
    最后修改日期: 2025年 9月 26日