VSCode 自动生成头文件的#ifndef #define #endif

VSCode 自动生成头文件的#ifndef #define #endif

官方说明文档

使用用户代码片段, 并非你创建头文件就给你把模板创建好, 不过用户模板也麻烦不到那里去

首先打开命令面板, MacOS是Shift cmd p, 其它应该是Shift Ctrl p.
输入snippets, 找到 (就是用户代码片段)
VSCode 自动生成头文件的#ifndef #define #endif_第1张图片
就是这一个, 点进去, 然后选择全局代码片段
VSCode 自动生成头文件的#ifndef #define #endif_第2张图片
名字随便输入, 这个不要紧, 我用的是这个
VSCode 自动生成头文件的#ifndef #define #endif_第3张图片.然后进入到一个json文件, 大概长这样
VSCode 自动生成头文件的#ifndef #define #endif_第4张图片
下面的配置可以看官方说明文档, 我这里就只提我要用到的, 简单说一下吧
如果你现在想直接用我现成的懒得往下看可以直接复制这一段代码

	"C C++ Header": {
     
		"scope": "c, cpp",
		"prefix": "header",
		"description": "Add #ifndef, #define and #endif",

		"body": [
			"#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}",
			"#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}",
			"",
			"$0",
			"",
			"#endif"
		]
	}

注意: 放到给出的大括号里面, 这样
VSCode 自动生成头文件的#ifndef #define #endif_第5张图片

然后你就可以在头文件里这么干了
VSCode 自动生成头文件的#ifndef #define #endif_第6张图片
效果:
VSCode 自动生成头文件的#ifndef #define #endif_第7张图片
如果你想让宏名字是TEST_H这样的, 修改刚才配置文件的代码为

	"C C++ Header": {
     
		"scope": "c, cpp",
		"prefix": "header",
		"description": "Add #ifndef, #define and #endif",

		"body": [
			"#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			"#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			"",
			"$0",
			"",
			"#endif"
		]
	}

这样效果就是
VSCode 自动生成头文件的#ifndef #define #endif_第8张图片


一步一步来

首先是取一个名字, 这个随意, 我用"C C++ Header"
VSCode 自动生成头文件的#ifndef #define #endif_第9张图片
然后设置里面的scope, 大概是语言, 用逗号分割, 我这里是c, cpp
VSCode 自动生成头文件的#ifndef #define #endif_第10张图片
然后设置prefix, 就是你输入后的提示, 我这里用header
VSCode 自动生成头文件的#ifndef #define #endif_第11张图片
然后是一个description, 用来描述这个选项, 我就用add #ifndef #define #endif
VSCode 自动生成头文件的#ifndef #define #endif_第12张图片
之后配置完效果是这样的
VSCode 自动生成头文件的#ifndef #define #endif_第13张图片

然后是重要的了, 配置body变量, 用中括号括起来, 是数组, 具体的内置变量(或者是宏)可以到官网查看, 上面有给的的连接, 这里就不说意思了直接放代码
VSCode 自动生成头文件的#ifndef #define #endif_第14张图片
其实上面给了, 我这里再放一遍吧

	"C C++ Header": {
     
		"scope": "c, cpp",
		"prefix": "header",
		"description": "Add #ifndef, #define and #endif",

		"body": [
			"#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			"#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			"",
			"$0",
			"",
			"#endif"
		]
	}

追加: 如果你想要这种效果

#ifndef TEST_H
#define TEST_H

#endif // TEST_H

需要这么配置(说实话去看看官方给出的文档秒懂)

	"C C++ Header": {
     
		"scope": "c, cpp",
		"prefix": "header",
		"description": "Add #ifndef, #define and #endif",

		"body": [
			"#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			"#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			"",
			"$0",
			"",
			"#endif // ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H"
		]
	}

你可能感兴趣的:(C++,VSCode)