c模板類分離編譯
在C語言程序中,每個模塊並不一定都能夠單獨編譯運行
❷ c語言中的函數可不可以單獨進行編譯
是可以的。
庫函數是把函數放到庫里,供別人使用的一種方式。函數庫是由系統建立的具有一定功能的函數的集合。庫中存放函數的名稱和對應的目標代碼,以及連接過程中所需的重定位信息。用戶也可以根據自己的需要建立自己的用戶函數庫。
使用C語言的語句直接計算sin或cos函數,就需要編寫頗為復雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
(2)c模板類分離編譯擴展閱讀
函數庫的分類
1、字元串、內存和字元函數
需要的包含文件:string.h、mem.h、ctype.h或string.h;
2、數學函數
需要的包含文件:math.h;
3、動態存儲分配
需要的包含文件:alloc.h或stdlib.h ;
❸ c++分離式編譯的好處是什麼
1、如果有錯誤能快速找到。
2、實現模塊多用。
分離編譯模式是指:一個程序(項目)由若干個源文件共同實現,而每個源文件單獨編譯生成目標文件,最後將所有目標文件連接起來形成單一的可執行文件的過程。
分離編譯模式是C/C++組織源代碼和生成可執行文件的方式。在實際開發大型項目的時候,不可能把所有的源程序都放在一個頭文件中,而是分別由不同的程序員開發不同的模塊,再將這些模塊匯總成為最終的可執行程序。
這里就涉及到不同的模塊(源文件)定義的函數和變數之間的相互調用問題。C/C++語言所採用的方法是:只要給出函數原型(或外部變數聲明),就可以在本源文件中使用該函數(或變數)。每個源文件都是獨立的編譯單元,在當前源文件中使用但未在此定義的變數或者函數,就假設在其他的源文件中定義好了。每個源文件生成獨立的目標文件(obj文件),然後通過連接(Linking)將目標文件組成最終的可執行文件。
程序編譯的簡要過程包括預處理(Preprocessing)、編譯(Compilation)、匯編(Assembly)和連接(Linking)。
❹ C++模板:這個程序為什麼通不過編譯(C++11)
DoIt 是個模板方法. 要告訴編譯器當成 模板方法對待.
B<T>::templateDoIt<Opr>();
改成這樣就可以了...
❺ c璇璦涓鐨勬ā鏉跨被鐨勫畾涔夋槸浠涔堟剰鎬濓紵
榪欐槸寤虹珛妯℃澘鐨勫滻瀹氬艦寮忥紝template鍗蟲ā鏉匡紝class鎸囩被鍒錛孴鏄綾誨埆鐨勭粺縐幫紝鍙浠ヤ嬌鐢ㄧ殑鏁版嵁綾誨瀷鏈塱nt銆乧har錛宖loat錛宒ouble絳夌瓑銆
涓句釜渚嬪瓙錛
template < typename T >
T min( T a, T b )
{
return a > b ? b : a;
}
榪欎釜 max 鍑芥暟灝辨槸涓涓妯℃澘鍑芥暟錛屽畠鍙浠ヤ紶鍏ヤ竴涓 鈥滅被鍨嬧濈殑鍙傛暟錛屼互渚垮疄鐜頒換鎰忕被鍨嬫眰鏈灝忓肩殑鏁堟灉銆
鎵╁睍璧勬枡錛
鍑芥暟妯℃澘鐨勫畾涔夛細
鍑芥暟妯℃澘鐨勫0鏄庢槸鍦ㄥ叧閿瀛 template 鍚庤窡闅忎竴涓鎴栧氫釜妯℃澘鍦ㄥ皷鎷寮у唴鐨勫弬鏁板拰鍘熷瀷銆備笌鏅閫氬嚱鏁扮浉瀵癸紝瀹冮氬父鏄鍦ㄤ竴涓杞鎹㈠崟鍏冮噷澹版槑錛岃屽湪鍙︿竴涓鍗曞厓涓瀹氫箟錛屽彲浠ュ湪鏌愪釜澶存枃浠朵腑瀹氫箟妯℃澘銆備緥濡傦細
// file max.h
#ifndef MAX_INCLUDED
#define MAX_INCLUDED
template <class T>
T max(T t1, T t2)
{
return (t1 > t2) ? t1 : t2;
}
#endif
瀹氫箟 T 浣滀負妯℃澘鍙傛暟錛屾垨鑰呮槸鍗犱綅絎︼紝褰撳疄渚嬪寲 max()鏃訛紝瀹冨皢鏇誇唬鍏蜂綋鐨勬暟鎹綾誨瀷銆俶ax 鏄鍑芥暟鍚嶏紝t1鍜宼2鏄鍏跺弬鏁幫紝榪斿洖鍊肩殑綾誨瀷涓 T銆傚彲浠ュ儚浣跨敤鏅閫氱殑鍑芥暟閭f牱浣跨敤榪欎釜 max()銆傜紪璇戝櫒鎸夌収鎵浣跨敤鐨勬暟鎹綾誨瀷鑷鍔ㄤ駭鐢熺浉搴旂殑妯℃澘鐗瑰寲錛屾垨鑰呰存槸瀹炰緥錛
int n=10,m=16;
int highest = max(n,m); // 浜х敓 int 鐗堟湰
std::complex c1, c2;
//.. 緇 c1,c2 璧嬪
std::complex higher=max(c1,c2); // complex 鐗堟湰
鍙傝冭祫鏂欐潵婧愶細鐧懼害鐧劇戔斿嚱鏁版ā鏉