㈠ 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