1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言 define 防止头文件重复包含 - C语言零基础入门教程

C语言 define 防止头文件重复包含 - C语言零基础入门教程

时间:2020-05-16 21:45:12

相关推荐

C语言 define 防止头文件重复包含 - C语言零基础入门教程

目录

一.头文件重复包含编译器报错 1.简单的理解头文件重复包2.老流氓的理解头文件重复包 二.通过宏定义解决头文件重复包含 1.通过 #ifndef / #define 解决头文件重复包含2.通过 #pragma once 解决头文件重复包含 三.通过插件 Visual Assist 设置快捷键解决文件重复包含 1.安装插件 Visual Assist2.打开 VS,找到 VAssistX 选项3.设置模板内容4.点击 OK,设置完成5.快捷键测试 四.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.头文件重复包含编译器报错

1.简单的理解头文件重复包

假如头文件里有一行

int a=1;

包含两次就变成了

int a=1;int a=1;

于是变量重复定义,编译器就会报错,函数同理;

2.老流氓的理解头文件重复包

你用过的套套肯定不会翻过来再用一遍;

二.通过宏定义解决头文件重复包含

1.通过 #ifndef / #define 解决头文件重复包含

#ifndef __XXX_H__#define __XXX_H__int a=1;#endif

上面的伪代码如下:

如果(没有定义宏__XXX_H__){那么直接定义宏__XXX_H__定义变量a 并且赋值为 1}结束程序

假如第一次包含时,由于没有定义宏 __XXX_H**,所以做了两件事,定义宏 __XXX_H**,然后定义 int a = 1;假如第二次包含时,由于已经定义宏 __XXX_H__,所以啥都不做;假如第 N 次包含时,由于已经定义宏 __XXX_H__,所以啥都不做;整个过程,无论头文件被包含多少次,变量 a 只被定义一次,不会有重复包含重复定义的问题存在!

2.通过 #pragma once 解决头文件重复包含

#pragmaonce 是上述方式的简写,好处是再也不会有两个头文件因为使用了同样的 __XXX_H__ 而被忽略了

#pragmaonce... ... // 声明、定义语句

三.通过插件 Visual Assist 设置快捷键解决文件重复包含

虽然上面两种方式都能解决 C/C++ 头文件重复包含冲突问题,但是还有一种更快捷的方法,直接通过 Visual Assist 设置快捷键完成,操作步骤如下:

1.安装插件 Visual Assist

详细的安装流程请参考:安装 Visual Studio 插件 Visual Assist

2.打开 VS,找到 VAssistX 选项

选择顶部菜单 VAssistX -> Code Generation and Refactoring -> Edit Refactoring Snippets

3.设置模板内容

选择 Type –> All by shortcut,新建一个快捷方式:** //t ** (快捷键:仅供参考,怎么顺手怎么来)

头文件模板内容如下:

#ifndef __$FILE_BASE_UPPER$_H__ //表示根据文件名字定义宏#define __$FILE_BASE_UPPER$_H__$end$#endif //__$FILE_BASE_UPPER$_H__

4.点击 OK,设置完成

5.快捷键测试

打开 vs,创建任意工程,添加头文件,使用快捷键 //t,例如,我项目添加了一个 test.h 文件,然后使用快捷键 //t,如下:

#ifndef __TEST_H__#define __TEST_H__#endif //__TEST_H__

推荐使用方法三,因为 Visual Assist 设置快捷键操作起来更方便快捷, Visual Assist 插件不仅能解决头文件重复包含问题,还能通过快捷键设置文件版权信息和作者信息,参考文章:Visual Studio 设置文件版权信息

四.猜你喜欢

C 语言 数组下标越界和内存溢出区别C 语言 指针声明和定义C 语言 指针 p++ / p–C 语言p++/§++/_(p++)/_p++C 语言 使用指针遍历数组C 语言 指针和数组区别C 语言 指针数组和数组指针区别C 语言 空指针 NULLC 语言 void 指针C 语言 野指针C 语言 函数值传递和址传递C 语言 函数缺省参数C 语言 函数不定长参数C 语言 函数指针C 语言 指针函数C 语言 回调函数 callbackC 语言 typedefC 语言 define 定义常量C 语言 define 防止头文件重复包含

未经允许:猿说编程 » C 语言 define 防止头文件重复包含

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。