1樓:匿名使用者
1、函式宣告由函式返回型別、函式名和形參列表組成。形參列表必須包括形參型別,但是不必對形參命名。這三個元素被稱為函式原型,函式原型描述了函式的介面。
定義函式的程式設計師提供函式原型,使用函式的程式設計師就只需要對函式原型編輯即可。
2、比如: 【返回型別】 函式名(引數1型別 引數1,引數2型別 引數2,……);
例項:bool swap(int a,int b);
例子中函式的返回型別為bool型,兩個引數都是int型,乙個名稱為a ,乙個名稱為b
函式宣告中的形參名往往被忽略,如果宣告中提供了形參的名字,也只是用作輔助文件。另外要注意函式宣告是乙個語句,後面不可漏分號!
如果是自己寫的函式,在宣告函式的同時要對函式進行定義。
假設頭檔名為head.h,原始檔名為main.cpp,兩個檔案在同乙個目錄下
在標頭檔案中直接加上int swap(int a,int b);這一句就可以了
在原始檔中還要加上include"head.h"
並且加上函式的定義:
bool swap(int a,int b)
注意在標頭檔案中宣告後記得在原始檔中包含這個標頭檔案,要不然是找不到函式的定義的。
2樓:
假如你有乙個頭檔名為:headfile.h 你有乙個函式:
int fun(int a, int b) // 這個函式在你的原始檔中 那你就要在原始檔中增加:#include "headfile.h"// 你自己定義的標頭檔案 在標頭檔案headfile.
h中需要增加與函式對就的原型:
將函式定義,宣告全放在標頭檔案中,與將函式宣告放在標頭檔案而函式定義放在.cpp檔案,然後使用該標頭檔案
如何在c++標頭檔案中定義函式,然後在原始檔中使用
3樓:大野瘦子
/*在text。h標頭檔案中進行宣告*/
#include
using namespace std;
void display(int,int);/*使用該函式來實現輸出*/
/*在texxt。cpp中進行定義,注意第一行,很重要因為不是c++標準庫中的標頭檔案,所以不能用<>,而要用""括起標頭檔案*/
#include "text.h"
void display(int x,int y)/*在主函式中進行呼叫函式*/
#include "text.h"
int main()
4樓:匿名使用者
一般為了安全性,只在標頭檔案中進行宣告,而不定義,在其它檔案中進行定義。給你個例子。因為我學了才一年,所以沒法給你說過多的理論,給你兩個例子你好好體會把。
簡單例子實現輸出兩個資料。
/*在text。h標頭檔案中進行宣告*/
#include
using namespace std;
void display(int,int);/*使用該函式來實現輸出*/
/*在texxt。cpp中進行定義,注意第一行,很重要因為不是c++標準庫中的標頭檔案,所以不能用<>,而要用""括起標頭檔案*/
#include "text.h"
void display(int x,int y)
下面這個例子實現類的標頭檔案中宣告,實現2*3矩陣的加法運算,並進行過載輸入輸出流。
在/*matrix。h中宣告*/
#include
class matrix
;/*在matrix。cpp中進行定義*/
#include "matrix.h"
return x;
}istream& operator>>(istream& w,matrix& y)
return w;
}ostream& operator <<(ostream & x,matrix& z)
5樓:匿名使用者
可以在原始檔中新增另乙個原始檔嗎?好像只能新增標頭檔案哦,在c++中。你要程式執行正確,就要建乙個標頭檔案,然後在標頭檔案中宣告函式,當然函式體的定義一般建義是在另乙個原始檔中定義,在另乙個原始檔中定義標頭檔案中宣告的函式時應使用#include語句把頭檔案包含進來才行。
然後你在在主程式中的原始檔中使用#include把頭檔案包含進來就沒錯了,下面舉個例子給你看下。
//標頭檔案hyong.h的內容如下
#ifndef hy //一般在標頭檔案都都使用這種格式以防止標頭檔案在同一檔案中被包含兩次。語名#ifndef hyong…..#endi表示僅當以前沒有使用預處理器編譯指令#define定義的名稱hyong時才處理#ifndef….
#endif之間的語句。
#define hy //在這裡用define定義乙個名字hy,以便在下次訪問到該標頭檔案時,使該名字已經被定義,從而讓程式跳過#ifndef….#endif間的語句。
void g(); //在標頭檔案中宣告乙個函式g();
#endif
//定義標頭檔案中宣告的函式的原始檔hyong.cpp的內容如下
#include "stdafx.h" //注意:在vc++中所有的原始檔中都要包含這條語句。
#include "hyong.h" //將標頭檔案hyong.h包含進來,這裡使用雙引號,而不是引號,以便能更快地檢查到該標頭檔案中定義的名字
#include
using namespace std;
void g() //定義標頭檔案hyong.h中宣告的函式g()
//主程式原始檔ff.cpp的內容如下
#include "stdafx.h"
#include
#include "hyong.h" //注意,主程式和hyong.cpp的檔案中都包含了這個標頭檔案。
using namespace std;
int main()
6樓:
在標頭檔案(如test.h)中定義函式,在同名原始檔(如test.cpp)中寫函式的實現,再寫增加乙個主函式原始檔main.
cpp,同名原始檔與主函式原始檔中包含標頭檔案,標頭檔案中加入巨集定義:
#ifndef test_h__
#define test_h__
#endif //test_h__
請問c語言怎麼把函式放在標頭檔案裡面呢
7樓:匿名使用者
一般的做法是,標頭檔案裡寫函式的宣告, 而實現寫在.c檔案裡
8樓:匿名使用者
你可以建立標頭檔案,標頭檔案是以".h"結尾的檔名,而main()函式所在的檔案則是以".c"結尾的,".
c"字尾的檔案內部,也就是main函式內部主要是呼叫各個功能函式,函式的宣告部分一般放在在".h"字尾的標頭檔案中,這樣是為了實現c語言的結構化,建立好了標頭檔案,就可以在標頭檔案內部實現各個函式的宣告,具體的乙個完整的函式宣告可以用下面的加法函式例子來說明 :
//include,頭檔名為add的標頭檔案float add(float x,float y) /*定義add函式*/
這個函式的返回值是float(浮點型或是實型),add為函式名,呼叫的形參都是float型別,數目為兩個形參x,y。x,y是接受main()函式中的實參傳過來的具體值,然後進行運算。main函式呼叫只要這樣就可以:
#include
#include
main()
9樓:懶得上樓
如果編譯器支援 inline 修飾符的話
static inline void function(void)
c++為什麼不要把函式定義都放標頭檔案裡
10樓:happy黃東陽
要害主要還是在標頭檔案定義類會暴露具體的實現方法,而在matlab這種軟體的一些自帶矩陣運算函式都是經過他們公司的研究實現的最高效的演算法,涉及到智財權,源**自然不會給你看,這時候只提供給你編譯好的庫檔案和標頭檔案就能避免洩露,至於重新編譯標頭檔案沒什麼影響,因為標頭檔案還有庫這些檔案一般都是由**商編譯好提供給你的,套用就行。
11樓:匿名使用者
標頭檔案提供類的結構,而類的實現不放在標頭檔案是為了不將類的實現暴露出來在最後提供給使用者的api,可是標頭檔案和庫的形式,這樣,你的實現過程不再暴露,而介面也提供了
12樓:
定義放在標頭檔案裡,就不能被多個原始檔使用了。
因為原始檔用#include指令引用標頭檔案,其實是乙個簡單的複製貼上,也就是把頭檔案內容複製到原始檔中#include那一行。如果把定義放在標頭檔案裡,且多處引用的話,同乙個函式就會被多個原始檔重複編譯,就會有編譯錯誤了。
這樣,你就不能寫一些通用的用於重複使用的函式了。
13樓:匿名使用者
或許「飽受詬病」這個說法不夠準確,參考下面這幅漫畫
14樓:匿名使用者
內聯。。。一般只是用在短而常用的函式
15樓:匿名使用者
c++的編譯時間已經飽受詬病了……
16樓:匿名使用者
牽一髮而動全身—— 人智卓,傻多果
17樓:匿名使用者
只要沒錯誤,你,愛放哪就放哪
關於c語言標頭檔案的問題:標頭檔案中宣告函式,然後在c檔案中寫函式體?請問這兩個檔案如何一一對應?
18樓:
假如你有乙個頭檔名為:headfile.h你有乙個函式:
int fun(int a, int b) // 這個函式在你的原始檔中
那你就要在原始檔中增加:#include "headfile.h"// 你自己定義的標頭檔案
在標頭檔案headfile.h中需要增加與函式對就的原型:
int fun(int a, int b);// 實際就是把函式定義的那一行複製過來,再加個分號,就實現一一對應了。
19樓:匿名使用者
一般標頭檔案和原始檔的檔名相同,即 key.h 和key.c在key.
c中引用#include "key.h"即可在標頭檔案中叫聲名, void func(); //注意後面的分號原始檔中是函式實現
void func()
偶函式的定義,偶函式的定義是什麼?
如果對於函式f x 的定義域內任意的乙個x,都有f x f x 那麼函式f x 就叫做偶函式。兩個偶函式相加所得的和為偶函式。1 如果知道函式表示式,對於函式f x 的定義域內任意乙個x,都滿足 f x f x 如y x y cos x 2 如果知道影象,偶函式影象關於y軸 直線x 0 對稱.3 偶...
C語言函式定義問題,c語言定義函式是什麼
x,y用空格隔開,就可以一次讀,至於斷開 可以用加斷點除錯看是在 斷的。這段 沒有問題啊,怎麼呼叫失敗了?scanf d d x,y 用空格隔開,別用逗號。c語言定義函式是什麼?將 段封裝成函式的過程叫做函式定義。函式可以重複使用的 用來獨立地完成某個功能,它可以接收使用者傳遞的資料,也可以不接收。...
matlab自定義函式怎麼把結果輸出到陣列
shuzu 1,num function a,b,c.這樣可以將一次運算的值依次儲存在乙個陣列中 或者你的函式輸出一些列值,想儲存在乙個陣列中,那麼 shuzu function a,b,c.就好啦 matlab基本資料單元是無需指定維數的陣列。陣列運算時matlab最鮮明的特點,她的一方面可以使得...
連續函式的定義是什麼,函式連續性的定義是什麼?如何判定乙個函式是連續的?
舉例來說,考慮描述一棵樹的高度隨時間而變化的函式,那麼這個函式是連續的 除非樹被砍斷 連續性 在自然界中有許多現象,如氣溫的變化,植物的生長等都是連續地變化著的。這種現象在函式關係上的反映,就是函式的連續性。另外,在數學的範疇裡,二維連續函式的定義是這樣的 在某點x0處,取它的左極限a和右極限b,當...
c建構函式的定義是什麼 在函式中有什麼作用
蝸牛優選推薦 建構函式是在建立給定型別的物件時執行的類方法。建構函式具有與類相同的名稱,它通常初始化新物件的資料成員。在下面的示例中,定義了乙個具有乙個簡單的建構函式,名為 taxi 的類。然後使用 new 運算子來例項化該類。在為新物件分配記憶體之後,new 運算子立即呼叫 taxi 建構函式。p...