① 如何C++自定義函數頭文件然後調用 請詳解!
比如說,在頭文件header.h中定義如下:
void Print(const char * str);
在header.cpp中實現如下:
void Print(const char * str)
{
printf(str);
}
(1)c如何自定義頭文件擴展閱讀:
頭文件的內容除了函數原型和宏定義外,還可以有結構體定義,全局變數定義:
一個#include命令指定一個頭文件;
文件1包含文件2,文件2用到文件3,則文件3的包含命令#include應放在文件1的頭部第一行;
包含可以嵌套;
<文件名>稱為標准方式,系統到頭文件目錄查找文件,"文件名"則先在當前目錄查找,而後到頭文件目錄查找;
被包含文件中的靜態全局變數不用在包含文件中聲明。
② 如何製作C語言頭文件
方法和詳細的操作步驟如下:
1、第一步,頭文件被構建為在c文件中聲明函數,並包括專宏定義, 必須有屬相應的c文件才能創建頭文件,見下圖,轉到下面的步驟。
③ cs+forcc添加頭文件
在 CS+FORCC 中添加頭文件可以使用以下步驟:
1. 打開需要添加頭文件的 c 文件。
2. 在文件的開頭部分,使用 #include 指令添加需要的頭文件,例如:`#include <stdio.h>`。
3. 保存文件並編譯。
需要注意的是,CS+FORCC 中的頭文件通常都是 C 標准庫中的頭文件,也可以添加其他的自定義頭文件。如果遇到編譯錯誤,可以檢查頭文件路徑是否正確或者是否缺少依賴庫等問題。
④ C語言含有包含自定義頭文件的程序怎麼編譯
1、只要在程序開頭加抄入#include 「自定義頭文件名」,在編譯過程當中,頭文件自動會被添加到源文件當中一起進行編譯。
2、編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。C源程序頭文件-->預編譯處理(cpp)-->編譯程序本身-->優化程序-->匯編程序-->鏈接程序-->可執行文件。
⑤ C語言中,定義自定義庫函數時該如何寫對應的頭文件
首先,要明白一點。標准庫的頭文件多次include是不會發生重定義的錯誤的。所有的標准庫文件專的內容屬都是如這般寫的:
#ifndefSTDLIB_H
#defineSTDLIB_H
...
#endif
這保證了它的內容只會被引用一次。所以要include,只寫一句
#include<stdlib.h>
就可以了。
另外,你自己的頭文件最好也加上上面所示的那種保衛宏,以防多次引用你自己的頭文件出現重定義。
你說的重復定義,可能是另外一個問題。你說你自己做了一個庫,如果你是用 Visual C 建工程生成的 lib 庫文件,要注意項目屬性里有一個 」/Mt「 "/Md" 的選項。請保證選的是後者,否則你的庫文件中會有一套標准庫的函數的實現,而使用你的庫編譯其他程序的時候,又會再次連接系統庫,如此便會產生重定義。
⑥ C語言定義一個頭文件的格式和引用它的方法
擴展名為.h的文件,在C語言中被稱為header file, 也就是頭文件。
頭文件的數據格式就是普通的文本文件,可以通過新建文本文件(txt),再把擴展名改為.h的方式創建,在此不贅述。
一、頭文件內容格式。
頭文件內容並沒有固定的格式要求,不過一般為防止嵌套引用給編譯器帶來死鎖或者沒必要的開銷,一般約定整個頭文件中所有內容在一個條件編譯下,即如下格式:
#ifndef 宏名
#define 宏名
//頭文件主體
#endif
這樣可以保證一個頭文件在一個源文件中最多隻被引用一次。為避免宏名重復,宏名一般由頭文件名轉換而來,如果頭文件名是xxx.h,那麼宏名一般定義為:
_XXX_H_
即前後各加一個下劃線,同時文件名中除數字、字母、下劃線以外的字元均轉換為下劃線(_)。
頭文件主體中內容同樣沒有做強制約定,可以出現在源文件(.c)中的任何代碼均可以放在頭文件中。不過一般情況下可以包括以下幾種內容:
1 引用其它頭文件,格式為
#include <xxx.h>
或
#include "xxx.h"
二者區別在介紹頭文件引用時再詳細介紹。
2 定義私有類型。比如
typedef unsigned long U32; //為了簡寫而給無符號32位整型定義一個新的名字
struct xxx {};
也可以是enum, union等復雜類型。
3 宏定義。比如
#define MAX(a,b) (a>b?a:b)
4 函數聲明。比如
void test_function(void);
5 全局變數聲明。比如
extern int global_var;
6 如果有一個靜態全局變數需要在不同源文件中使用,但各文件之間互不相關。那麼可以放在頭文件中。如:
static int gs_var = 3;
7 對於支持C99規范的C編譯器,還可以把內聯函數定義在頭文件中。比如
staticinlineintget_min(inta,intb)
{
if(a>b)returnb;
returna;
}
以上是常見的頭文件中的元素。但實際上頭文件中也可以放全局變數的定義,全局函數的實現等。但是頭文件中一旦定義了這樣的元素,這個頭文件在一個工程中只能被一個文件引用,否則編譯器會報重復定義的錯誤。
比如如果有一個規模很大的常量數組,比如一副圖片的二進制值,如果把它定義在源文件中,就會顯得很冗餘,因為並不會經常修改。 這時可以定義在頭文件中,只在一個源文件中引用,當有多幅圖片需要隨時更換時,也可以通過簡單的在源文件中修改引用的頭文件名達到修改的目的。
二、頭文件的引用。
頭文件引用的方法其實之前已經大致說過了,在源文件中引用頭文件和在頭文件中引用的格式是一樣的:
#include<xxx.h>或者
#include "xxx.h"
xxx為頭文件名。
用<>和""是有一定的區別的。在編譯器查找頭文件的時候,會在兩個區域分別查找。
一個是系統頭文件區域,即類似於stdio.h一類的C庫函數頭文件區。
另一個是自定義頭文件區,比如當前目錄,以及其它自定義的目錄。
用<>時,編譯器會先在系統區域查找,然後再查找自定義區域。而用""時則相反。
由於一般並不推薦自定義頭文件名與系統頭文件名相同(容易引起歧義並難以維護),所以先後順序並不是太重要,尤其在硬體速度越來越快的今天,使用哪種符號引用頭文件已經差別很小了。