文章目录

  • 添加注释工具快捷键
  • 自定义命令快捷键
  • 添加注释工具图标
  • 使用`#if 0`代替块注释
  • 为什么使用#if 0注释
  • 添加插入外侧代码工具
  • 使用快捷工具进行 #if 0 注释


添加注释工具快捷键

在C/C++中提供了两种注释方式,行注释// 与 块注释 /* .. */ ,而这两种注释方式在VS编译器中对应的快捷键 ctrl + k+ctrl + c 注释代码、ctrl + k+ctrl + u

如果我们嫌这样的快捷键不太方便的话,我们也可以将对应命令自定义修改为熟悉的按键规则。

自定义命令快捷键

打开【工具】——》【选项】

vs编译android VS编译快捷键设置_Visual Studio


打开之后,选择【环境】——》【键盘】

vs编译android VS编译快捷键设置_vs编译android_02


在命令搜索框中搜索相关命令,然后按下对应键盘的响应的方式即可。

vs编译android VS编译快捷键设置_Visual Studio_03


最后点击分配,确定即可完成快捷键的设置,其他命令的快捷键设置与之同理。

此外,也可以直接在编译器上添加图标,下面介绍如何添加注释的图标。

添加注释工具图标

vs编译android VS编译快捷键设置_c++_04


当出现文本编辑器的工具栏时,找到该工具栏对应末尾位置,点击一个下拉三角图形,选择【添加或移除按钮】

vs编译android VS编译快捷键设置_vs编译android_05


勾选相应工具即可

vs编译android VS编译快捷键设置_c++_06


如此以来我们注释代码就会很方便。gif演示:选中代码块左侧对齐,自动选择行注释,选中代码块左侧不对齐,自动选择块注释。

vs编译android VS编译快捷键设置_c++_07

使用#if 0代替块注释

博主在平时写代码时,经常会用到调试功能,而在调试时常常会遇到一些已经模糊记忆的库函数,类成员方法。一般这种时候,我都会注释掉当前代码,写上一部分测试用例先熟悉一下这些函数方法。

另外,我们都知道在一个工程文件中只能有一个main主函数,而在平时的学习和代码积累中每次都新建一个解决方案太过麻烦,这种情况下我一般也会选择注释掉旧的代码,继续在原项目中写代码。

因此,在平时的写代码时间中,使用注释是非常频繁的。因此,博主把一些使用上的心得在这里分享一下。

注:我这里使用#if 0 注释是为了,阅读代码和管理代码的方便,只限于个人的日常使用,而在具体项目中使用这种方式注释会带来什么问题我也无法预料,这里需要留意一下。

为什么使用#if 0注释

在C/C++中的块注释有一个缺点就是,不能嵌套使用,比如下面已经使用过块注释了。

vs编译android VS编译快捷键设置_vs编译android_08


而当我们想重新写一个main函数,但当前main函数又不想删掉,之后可能还会使用时,我们就需要注释掉当前的mian函数。但由于块注释不能嵌套使用,因此下面的用法是错误的。

vs编译android VS编译快捷键设置_#if_09


如过我们想注释掉含有块注释的代码,一般来说有两种选择。法一,我们把之前的块注释取消掉,在对整个main函数进行注释;法二,使用行注释对每一行进行注释。

由于我们之后可能会再次用到该段代码,因此保留当前代码的相对完整是很有必要的,因此这里比较好的方式是使用行注释对每一行分别注释,好在vs提供了快捷键可以一次对多行进行注释。

vs编译android VS编译快捷键设置_c++_10


但是我们发现,使用这种方式注释的代码非常丑陋,而且非常不便于阅读。

那么我们可以使用 #if 0 ... #end 的方式进行注释,这是一对预定义宏,可以在预编译时期进行判断,如果 #if FLG if后的值 FLG不为0,中间的代码块进行参与其后的编译工作,否则忽略该段代码进行编译。

vs编译android VS编译快捷键设置_c++_11


可以看到使用这种方式注释,代码非常的直观,甚至我们可以定义多个宏,作为代码段执行的条件。

#define ONE 1
#define TWO 0
#define THW 0
#define FOU 0

#if ONE
int main() { cout << "this is ONE"; }
#endif // ONE

#if TWO
int main() { cout << "this is TWO"; }
#endif // TWO

#if THW
int main() { cout << "this is THW"; }
#endif // THW

#if FOU
int main() { cout << "this is FOU"; }
#endif // FOU

遗憾的是,vs编译器并没有直接提供调用#if ... #endif 的快捷键,我们需要手动的在待注释代码的首部与尾部添加 #if 0#endif

不过编译器中提供了“插入片段”和“外侧代码”两种快捷工具,合理的利用也是可以起到相同的效果的。

vs编译android VS编译快捷键设置_Visual Studio_12

添加插入外侧代码工具

打开一个工具栏的【添加或移除按钮】,选择【自定义】

vs编译android VS编译快捷键设置_Visual Studio_13


选择【添加命令】

vs编译android VS编译快捷键设置_Visual Studio_14


选择【编辑】,拖动滑动条,找到“插入片段”或“外侧代码”命令工具。

vs编译android VS编译快捷键设置_注释_15


“插入片段” 或 “外侧代码”

vs编译android VS编译快捷键设置_Visual Studio_16


vs编译android VS编译快捷键设置_c++_17


两者任意一个皆可,这里我们选择的是“外侧代码”。点击确定后,回到【自定义】界面,选中“外侧代码”,我们可以通过上下移调整命令工具的相对位置。

vs编译android VS编译快捷键设置_#if_18


此外,我们也可以修改该命令的快捷键(点击“键盘”选项),或者设置命令工具的样式(点击“修改所选内容”)。这里我们选择 “修改所选内容” ,将样式修改为“图像和文本”。

vs编译android VS编译快捷键设置_#if_19


命令按钮效果展示:

vs编译android VS编译快捷键设置_c++_20

使用快捷工具进行 #if 0 注释

选中代码段后,点击“外侧代码”按钮。使用Tab键自动默认使用 #if FLAG ... #endif

vs编译android VS编译快捷键设置_#if_21


此外,我们还可以选择对FLAG进行编辑。具体过程为,当出现#if 主体时,此时光标位置就在FLAG上,我们只需要输入判断条件,按下回车后即完成编辑。

vs编译android VS编译快捷键设置_c++_22