头文件保护符
头文件保护符 是一种预处理器指令模式,用于防止头文件被多次包含。 头文件保护符将整个代码内容包裹在一个 #ifndef (#if !defined 或其他类似)块中:
编辑头文件模板
默认情况下,头文件保护符包含在指定新头文件初始内容的 文件模板 中。 如果您决定使用 #pragma once 替代头文件保护符,您可以编辑这些模板。 为此,请转到 并打开 个文件 选项卡。 从列表中选择 C 头文件 或 C++ 类头文件 ,并更改模板内容:

注意 字面量 语法包裹 #pragma once。 对于文件模板,CLion 使用 Apache Velocity 语言,该语言需要对 C/C++ 预处理器指令进行转义以正确解析它们。
配置头文件保护符符号
头文件保护符符号(上例中的
MY_HEADER_H)应是唯一的,因此通常与文件名相关。 要配置头文件保护符符号的模式,请打开 命名约定 选项卡,在 中并在 头文件保护符 字段中指定模板:
您可以使用各种预定义变量,例如:
${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}模式替换无效符号。配置的符号将替换头文件模板中的
${INCLUDE_GUARD}变量。 CLion 会在 创建 新建 C/C++ 类和头文件时应用该模式。 此外,如果您 重命名 类或文件,与当前配置样式匹配的头文件保护符将使用新名称更新: