㈠ c语言中防止重复包含头文件的固定格式的疑问
不是头文件重复包含问题! 而是你的 两个成员函数 有问题! 如果要把函数 声明与定义分开要么一个用.h 文件另一个用cpp文件, 要么用继承。
你只需要把两个函数的实现放在 a.h 里面就好了!
另外,为了防止头文件重复包含的最好方法是在 有课能重复的文件(本题a.h)加上
#progma once
请采纳啊! 我也遇到同样问题,今天搞了好久才总结的……
㈡ c语言如何避免重复包含头文件
#include 通常不会包含 .cpp 文件,如果包含的话,一般仅会包含如 static 的函数这样不会因为多次包含而导致链接问题的。
为了防止重复包含,头文件中都会有相应的处理,比如加上
#ifndef _STDIO_H_
#define _STDIO_H_
// 真正的头文件内容
#endif
这样在多次包含的时候,因为已经定义了 _STDIO_H_,所以第二次包含的内容会被忽略。
比较新的 C++ 编译器也支持 #pragma once,这样只要在头文件开头写上这一句,编译器就会在处理头文件的时候不包含多次了。
㈢ c语言防止重定义为什么要用————大写字母——H——
定义类型的时候在.h文件里定义,每个.h文件以
#ifdef ****
#define ****
开头
以
#endif
结束
*号部分一般用_大写字母文件名_H_类似这样的字符
㈣ C语言头文件避免重复包含,pragma once和#ifndef的区别
1) #pragma once用来防止某个头文件被多次include,
#pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了。
2) #ifndef,#define,#endif用来防止某个宏被多次定义。
#ifndef,#define,#endif这个是C++语言相关,这是C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式
最好看看这篇文章
http://blog.csdn.net/liulina603/article/details/12083723