當前位置:首頁 » 編程語言 » c語言程序模版
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言程序模版

發布時間: 2022-09-06 08:41:23

『壹』 c語言使用什麼軟體,該如何使用

C語言作為一門古老的編程語言,應用范圍非常廣,至於編程的軟體的話,其實就非常多了,下面我簡單介紹幾個不錯的C語言編程軟體,感興趣的朋友可以自己嘗試一下:

Dev-C++

這個是Windows環境下一個輕量級、免費的C/C++集成開發環境,自帶有TDM-GCC編譯器、GDB調試器,可以直接編譯運行C語言程序,輕快靈活,功能簡潔,支持代碼高顯亮,沒有自動語法提示和自動補全功能,對於初學者來說,非常鍛煉人,純手工編寫代碼,更能打好基礎:

VC++6.0

這個軟體的功能和Dev C++差不多,也是Windows環境下一個非常不錯的C/C++開發環境,在早期的學習中,經常會用到這個軟體,許多學校機房中都使用這個軟體教學,可以直接編輯運行C語言程序,功能比較簡單,沒有任何提示功能,都是手寫代碼,現在來說,使用不多了,但對於初學者來說,也是一個不錯的選擇:

CodeBlocks

相比較前面2個軟體,CodeBlocks的功能強大一些,開源、免費、跨平台,小巧靈活,支持代碼高亮、語法檢查、自動補全等功能,除此之外,還提供了許多現成的工程模板,可以快速創建控制台應用、Qt應用等,使用起來非常方便,也是一個非常不錯的C語言編程軟體:

VS Code

這是微軟開源、免費、跨平台的一個代碼編輯器,插件眾多,生態環境良好,配置GCC編譯器後,也可以直接編輯運行C語言程序(本身支持的編程語言也非常多),支持智能補全、語法提示、Git等功能,輕便靈活,使用起來非常不錯,也很好學習和掌握:

VS 2017

這是一個專業的C/C++開發環境,也是個人和公司使用最多的IDE,項目管理、團隊協作來說非常方便,集成的環境比較多,Python、VB、C#等,這個軟體都能很好的兼容,自動補全、語法檢查和提示功能這個軟體都支持,整個軟體比較大,運行起來電腦可能會比較卡,而且功能比較復雜,初學者來說,需要一段時間才能適應和基本掌握,但的確是一個值得學習和使用的IDE環境:

Vim

這也是一個非常經典的C語言編程環境,只不過在Linux環境下比較常用,免費、跨平台,插件擴展比較豐富,輕巧靈活,功能簡潔,安裝GCC編譯器後,也可以直接編譯運行C語言程序,對於在Linux環境下開發C來說,是一個非常不錯的選擇:

目前,就分享這6個不錯的C語言編程軟體吧,有Windows的,也有Linux的,對於初學者來說,完全可以滿足日常開發和使用,當然,你也可以使用其他軟體,像IDEA、Eclipse(安裝插件)等,也可以,適合自己就行,網上也有相關資料可供參考,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

這個有好多,我先來說說我用過的有哪些?

我在Windows上一開始用的是 win-TC,這是一個新手軟體。

他有了界面,能夠使用滑鼠,具有語法高亮,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。

我給你看看它的樣子

我再來講一個: dev-C++

這個軟體也挺好的,是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高亮,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。

我來給你看看它的樣子

再來最有一個,他就是 VC++

微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索.

你自己考慮用哪個吧!

祝願你c語言學的越來越好!

C語言只是一門計算機編程語言,具體使用什麼軟體,你應該指的是要是用什麼樣的集成開發環境(IDE)去編譯。因為編輯C語言,可以說只要是能打字的就可以,記事本都可以,但是編譯的常見的有Visual Studio,GNU gcc等一般的編譯工具,但這僅限上層應用工具編譯的C語言代碼,也僅供上層應用使用,在嵌入式中最常用的是Keil,IAR這兩款IDE,也有部分使用eclipse,Qt Creator。具體看MCU支持的開發環境,我接觸過的有Visual C++,Visual studio,Keil,IAR,Atmel Studio,eclipse,

Simplicity Studio,ST Visual Develop,這些都是C語言的編程工具,使用的編譯交叉工具。有些用來編寫C語言的,我用過記事本,notepad++,Vim,sourceinsight,sublime等等。

我是Java軟體工程師,用專業角度分享干貨。在這里推薦三款軟體,足以滿足你學C語言的需求。



最經典的莫過於VC6.0

VC6.0是大部分科班出身的第一款編程軟體。本人軟體工程專業,大一就是使用這款軟體入門C語言,當然這款軟體也可以用來學習c加加。



既然是學院派軟體,那自然有教科書選擇它作為編程C語言入門的原因,簡朴的界面,容易上手的操作方式。

缺點是Windows10安裝有點麻煩,Windows7及以下可以兼容,而且官網也不對此軟體進行維護了。

升級版VC,Visual Studio

如果打算學C語言並且以後成為你謀生的工具,在Windows系統里首推VS,這款軟體不是免費的但是有社區版,當然仔細找找可以弄到破解版本也不是難事。



VS是非常強大的編譯軟體,不僅僅可以寫C語言以及其他帶c的語言,還可以寫Java等主流語言。個人用過2010版本寫c加加,確實是不錯的工具。

Linux系統必備,Vim

以上兩種是Windows用戶必備的C語言學習軟體,如果你想在Linux里掌握更加純粹的編程方式,那麼可以用Vim,這是簡單而又經典的C語言編譯工具。



當然它與前兩款有所不同,寫完以後沒有按鈕給你點擊運行,你必須在Linux的命令行上編譯運行,這對你掌握C語言的原理會有更好的幫助,順便還能把Linux知識掌握一番,一箭雙雕。

C語言使用的軟體可以分為兩種,一種是為懶人設計的可視化編輯工具:IDE,一種是」心中有劍「的無可視化編輯工具:文本。下面我來詳細說說。

一、C語言可視化編程工具IDE

IDE,全稱叫做「Integrated Development Enviroment」(此處我擦把汗,還好英文沒還給老師),中文名叫「集成開發環境」,關鍵字是「集成」。C語言IDE集成了C程序文件打開、保存、編譯、運行、調試、工具等各種功能,所以叫做集成開發環境。

目前有很多種IDE,比較著名的有Visual Studio、Eclipse CDT、Dev-C++等,根據每人不同的愛好去選擇。下面我大概說說Dev-C++主要功能。

1、新建一個C程序文件

開始編寫C程序代碼了,第一步當然是新建一個C程序代碼了,在菜單「File」下找到「New」即可:

可以單獨新建一個C程序代碼文件,也可以新建一個項目。順便說下,在「File」菜單下,還有諸多的其他功能,如打開已有的C語言程序代碼、保存當前的C程序代碼等,充分體現了IDE的「集成」概念。

2、編譯運行一個C程序文件

寫完一個C語言程序代碼後,可以在「Execute」菜單下找到「Compile」和「Run」,也就是編譯和運行的意思。

菜單「Execute」下的功能也是十分的豐富,有單獨的編譯、運行步驟,也有編譯與運行的集成步驟,還有重新編譯、C語言代碼語法檢查、參數設置、清空當前項目等諸多實用功能。

對於C語言初學者來說,Dev-C++是一個很不錯的IDE編程環境。

二、C語言不可視化編程環境

很多C語言編程高手從來不用IDE,你跟他說IDE,他會一臉茫然「那是個啥東西?」不少程序員編程直接打開文本文件,在文本文件上寫好C語言程序代碼,然後GCC編譯,結束!這就是採用不可視化編程環境。

例如上面的那段C語言代碼就寫在一個文本文件里,程序員靠著眼力看下程序沒有什麼語法錯誤,然後直接GCC編譯C程序代碼文件,如下:

上圖是使用GCC編譯時使用的一些編譯參數。可以看到相比較於IDE的一鍵式編譯,手動編譯需要自己指定編譯頭文件目錄、編譯C語言函數庫路徑等,比較麻煩。不過這也是手動編譯的魅力所在,就是其樂無窮!

編譯完了之後會生成一個C程序可執行文件,直接運行這個可執行文件即可。

使用C語言編寫程序,有兩種方式:一種是可視化編程環境,也就是我們常說的IDE(集成開發環境),一種是非可視化編程環境,純手工活兒。至於哪一種更好因人而異,希望能幫助你找到適合自己的編程開發環境!

老話說:欲先善其事必先利其器,所以說對於學習一種程序語言,選擇一個良好的工具是至關重要的!選擇工具之前,首先對語言得有個起碼的認識:

C語言的顯著特點

C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。C語言的文件是由數據序列組成,可以構成二進制文件或文本文件。

常用的軟體有

一般常用IDE(集成開發環境)的有Microsoft Visual C++,Code::Blocks,Dev-C++,Watcom C++ ,Borland C++ Builder,Borland C++,GNU DJGPP C++ ,High C,Lccwin32 C Compiler 3.1,Turbo C,C-Free,win-tc 等等

對於新手小白來說

可以選擇Microsoft Visual C++,因為其特點是:界面友好,功能強大,尤其是調試也很方便。

安裝的方法:(以下是網路安裝經驗,僅供參考)https://jingyan..com/article/4ae03de32997a63eff9e6b33.html

另外推薦幾個視頻學習網站

網易雲課堂;騰訊課堂;慕課網等

***希望對您有幫助,有不同想法,歡迎在下方評論留言!!! 碼上有理友聚在這等著你

推薦VS2017

1、安裝VS2017 IDE軟體,不多說,安裝guide一步步安裝即可。

2、選擇File-New-Project,選擇Visual C++-general-Empty Project新建一個C++工程。

3、在右側的Resource files 右擊Add-New Item選擇C++ File(.cpp)

4、書生意氣風發的寫入Hello world

代碼如下:

#include 「stdio.h」

#include

Int main()

printf("Hello World!」);

system(「pause」);

return 0;

學c語言難道不是應該找學習方法嗎?找APP是不是方向錯了,


就算有課程的APP大多都是收費的,不如網上搜集點學習資料,找別人做好的開源代碼,學習別人的思想


學習編程最重要的是自己敲代碼

推薦一款windows和linux下通用的開放源碼的全功能c/c++集成開發環境:code::blocks


這是linux下的界面。

windows版可以漢化。

也可以使用Turbo c 3.0

『貳』 有用c語言編寫程序的模板嗎

有!先包含庫文件->變數,函數聲明,->main函數->結束!就這么簡單!

『叄』 C中的模板怎樣使用 最好給個例子~

看看這個吧
http://www.njcc.e.cn/njhysite/njhygao_js/xuebao/xuebao0402/zhjm.doc
其他的見

C語言中實現模板函數的方法

在C語言中實現模板函數的方法:

各種用C語言實現的模板可能在使用形式上有所不同。

現以一個求和函數Sum為例,用C++Template可寫如下:

template<classT,classR> RSum(constT*array,intn)

{

Rsum=0;

for(inti=0;i<n;++i)

sum+=i;

returnsum;

}

如果不是內置類型,該模板隱式地需要有RR::operator+=(T)運算符可用。

1. 使用函數指針作為Functor替換者
TypedefstructtagAddClass

{

Void(*add)(char*r1,constchar*r2);

IntelemSize;

Char sum[MAX_ELEM_SIZE];

}AddClass;

voidSum(AddClass*self,constchar*array,intn)

{

for(inti=0;i<n;++i)

self->add(self->sum,array+i*self->elemSize);

}

使用時:

…..

VoidAddInt(char*r1,constchar*r2)

{

*(long*)r1+=*(int*)r2;

}

AddClassaddClass={AddInt,2,0};

Intarray[100];

Read(array);

Sum(&addClass,array,100);

…..

2. 用宏作為Functor的替換者
#define GenSumFun(SumFunName,Add,RetType,ElemType) \

RetTypeSumFunName(constElemType*array,intn) \

{ \

RetTypesum=0; \

for(inti=0;i<n;++i) \

Add(sum,i); \

returnsum; \

}

使用時:

#defineAddInt(x,y) ((x)+=(y))

GenSumFun(SumInt,AddInt,long,int)

…..

Intarray[100];

Read(array);

Longsum=SumInt(array,100);

…..

3. 所有可替換參數均為宏
至少需要一個額外的文件(實現文件)為impsum.c

/*impsum.c*/

RetTypeFunName(constElemType*array,intn)

{

RetTypesum=0;

for(inti=0;i<n;++i)

Add(sum,i);

returnsum;

}

使用時:

#undef RetType

#undef FunName

#undef ElemType

#undef Add

#defineAddInt(x,y) ((x)+=(y))

#defineRetTypelong

#defineFunNameSumInt

#defineElemTypeint

#defineAdd AddInt

#includeimpsum.c

…..

Intarray[100];

Read(array);

Longsum=SumInt(array,100);

…..

4. 總結:
第一種方法,易於跟蹤調試,但是效率低下,適用於對可變函數(函數指針)的效率要求不高,但程序出錯的可能性較大(復雜),模板函數(Sum)本身很復雜,模板參數也比較復雜(add)的場合。

第二種方法,效率高,但很難跟蹤調試,在模板函數和模板參數本身都很復雜的時候更是如此。

第三種方法,是我最近幾天才想出的,我認為是最好的,在模板參數(Add)比較復雜時可以用函數(第二種也可以如此),簡單時可以用宏,並且,易於調試。在模板函數本身很復雜,而模板參數比較簡單時更為優越。但是,可能有點繁瑣。

一般情況下,沒有必要做如此勞心的工作,一切交給編譯器去做就行了。但是本人在開發一個文件系統時,由於是基於一種少見的平台,沒有可用的C++編譯器,有幾個函數,除了其中的類型不同(uint16和uint32),和幾個可參數化的宏不同,其它地方完全相同,而函數本身很復雜(兩百多行代碼)。Copy出幾個完全類似的函數副本,維護起來特別煩人。非常需要如此的編程模式,故此,分享出來,大家共同探討。

『肆』 計算機c語言實訓報告範文標准模板

實訓教學是培養計算機專業學生C語言的基本能力、職業能力、技術應用能力、創新能力的重要途徑。本文是我為大家整理的計算機c語言實訓 報告 範文 ,僅供參考。

計算機c語言實訓報告範文篇一

一、 課題名稱:簡單計算器

設計一個簡單的程序來模擬計算器的功能。

二、 設計目的:

1、通過理論知識與實際需求相結合,編輯解決一些日常中的實際問題,培養初步的獨立分析和設計能力。 2、了解應用程序設計解決實際問題的具體過程和實現 方法 ,掌握應用C語言進行程序設計的基本規范; 3、重點掌握C語言的程序編寫、函數設計、演算法設計和程序調試方法; 4、初步掌握系統開發過程的問題分析、系統設計、程序編碼、測試等基本方法和技能。

三、 設計任務:

1、通過結構體數組和共用體數組來存放輸入的每一數字或運算符號的記錄(包括1、2、3等數字,+、--、_、等運算符號),然後將其信息存入文件中。輸入一個算術計算式,就在屏幕上顯示結果。 2、輸入簡單的加減乘除算術計算式,並在屏幕上顯示計算結果;

四、 設計要求:

1、用C語言實現程序設計並進行調試; 2、畫出查詢模塊的流程圖;

3、系統的各個功能模塊要求用函數的形式實現; 4、界面友好(良好的人機互交)。 5、完成設計 說明書 (A4)。

五、代碼設計:

#include "stdio.h" main() { float x,y;

char operator;

printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator)

{case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0)

printf("chushushilingwuyiyi"); else

printf("%.2f/%.2f=%.2f",x,y,x/y); break;

default: printf("yunsunfuwuxiao"); } }?

七、設計 總結 :

學習C程序這門課一個學期了,這是我們學的第一門專業課,所以作為我這個計算機系的學生來說當然十分重要,老師在第一節課說過,C語言是計算機的基礎,大多數軟體都需要用C語言來編寫,通過一個學期的學習,使我初步掌握了一些關於這門課的知識

這次的課程設計是對我們一個學期來所學的知識的綜合考察,裡面涉及到了我們大多數所學知識。記得剛開始學這門課的時候,對這門課充滿了希望,自己有信心學好這門課,但是經過一段時間的學習之後。才發現程序設計並不好學,它既要你有很強的領悟能力,還要你課後的努力,也許是自己之前太有信心學好

這門課了吧,中間遇到了很大的瓶頸,一度陷入無休止的煩惱中編程序時沒有一次是成功的,總會遇到很多的error,改完一個又有一個,這時我會想到一句古話「天將降大人於斯人也,必先苦其心志,勞其筋骨,餓其體膚」,也許以後會有些許光明吧。之後,隨著時間的推移,慢慢掌握了這門課學習的一些竅門,學習起來也比剛開始的時候好了一點,至於編程序嗎還是有錯誤,但比以前少了,總讓我看到希望了。這次的課程設計要求我們編一個簡易計算器,剛開始的時候我一頭霧水,丈二摸不著頭腦,不知從哪裡下手,後來經過老師和同學的幫助,從最簡單的編框開始,慢慢的到最關鍵的演算法,這其中經歷了很多彎路,也犯過了很多錯誤,但是還是一一攻克了,好比紅軍長征兩萬五千里終於到達了終點。看到最後自己編寫出來的計算器感到格外的高興,暫且不說計算器的功能方面吧,但畢竟是自己寫的第一個正式的程序,感到格外的高興。

在編寫程序的過程中受到了其他同學的指點,也許在某些程序方面會和有的同學想類似,另外老師也幫助了很多,一個好的學生離不開一個好老師嗎,雖說我不算一個好學生,但是老師在我編程序過程中也起到了很大的作用,就像老師說的一句話一樣「革命尚未成功,同志仍需努力」,我們在C語言這門課上還會繼續走下去,以後還會經常碰到,我會努力的。

計算機c語言實訓報告範文篇二

實驗一 工作平台

一、目的和要求

1、熟悉C語言程序的支持運行環境,了解所用計算機系統的軟、硬體配置和使用方法。

2、初步了解運行一個C語言程序的過程。

二、實驗環境

硬體環境:計算機(windows xp系統) 軟體環境:Turbo C3.0或VC++6.0

三、實驗內容

1.1請編寫一個程序,顯示以下兩行文字。

I am a student.

I love China.

源程序代碼:

#include

int main(void)

{printf(「I am a student. 」);printf(「I love China. 」); return 0;}

數據輸入與運行結果:

1.2編寫一個程序,從鍵盤輸入兩個整數,輸出這兩個數之和。

源程序代碼:

#include

int main(void)

{int a,b,c; printf(「input two integers: 」);

scanf(「%d %d」,&a,&b);c=a+b;printf(「The sum is %d: 」,c); 數據輸入與運行結果:

1.3編寫一個程序,求3個整數之和。

源程序代碼:

#include

int main(void)

{int a,b,c,sum;a=12,b=34,c=56;sum=a+b+c;

printf(「sum is %d 」,sum);}

數據輸入與運行結果:

1.4編寫一個程序,從5個整數中找出最小的數。

源程序代碼:

#include

int main(void)

{int a,b,c,d,e,min;

scanf(「%d %d %d %d %d」,&a,&b,&c,&d,&e);

min=a;if(min>b) min=b;if(min>c) min=c;if(min>d) min=d;

if(min>e) min=e;printf(「min is %d 」,min);}

數據輸入與運行結果:

1.5寫出下列程序的輸出結果。

(1)#include

int main(void)

{printf(「%d%d%d%d 」,1+2,5/2,-2_4,11%3);

printf(「%.5f%.5f%.5f 」,1.+2.,5./2.,-2._4.);

}

(2)#include

int main(void)

{int i=8,j=10,m=0,n=0;

printf(「%d,%d,%d,%d」,i,j,m=++i,n=j++);

}

(3) #include

int main(void)

{int x;

x=-3+4_5-6;printf(「%d 」,x); x=3+4%5-6;printf(「%d 」,x);

x=-3_4%-6/5;printf(「%d 」,x);x=(7+6)%5/2;printf(「%d 」,x); }

數據輸入與運行結果:

1.6分析比較下面兩個程序的輸出結果。

(1) #include

int main(void)

{int x,y,z; x=y=2;z=3; y=x++ -1;printf(「%d %d 」,x,y);

y=++x-1; printf(「%d %d 」,x,y); y=z-- +1; printf(「%d %d 」,z,y); y=--z+1; printf(「%d %d 」,z,y); return 0;}

(2) #include

int main(void)

{int x,y,z; x=y=2;z=3; y=x + +-1;printf(「%d %d 」,x,y);

y=+ + x-1; printf(「%d %d 」,x,y); y=z - - +1; printf(「%d %d 」,z,y); y=- -z+1; printf(「%d %d 」,z,y); return 0;}

數據輸入與運行結果:

實驗二 C語言基礎

一、目的和要求

1、進一步掌調試的方法。

2、掌握數據的輸入和輸出方法。

3、掌握有關運算符與表達式的運用。

二、實驗環境

硬體環境:計算機(windows xp系統) 軟體環境:Turbo C3.0或VC++6.0

三、實驗內容

2.1 上機調試下面的程序,給出運行結果。

(1) #include

int main(void)

{float x=234.89;double y=-123.4567;printf(「%.3f,%.3e 」,x,x); printf(「%08.3f,%010.3e,%015.3e 」,x,x,x);

printf(「%g,%e 」,y,y,y);}

(2) #include

int main(void)

{char c;short i;c=』A』;i=65;

printf(「c:dec=%d oct=%o hex=%x ASCII=%c 」,c,c,c,c); printf(「i:dec=%d oct=%o hex=%x unsigned=%u 」,i,i,i,i); c=』X』;i=-4;

printf(「c:dec=%d oct=%o hex=%x ASCII=%c 」,c,c,c,c); printf(「i:dec=%d oct=%o hex=%x unsigned=%u 」,i,i,i,i);}

(3) #include

int main(void)

{char c1,c2; c1=』A』+』5』-』3』; c2=』A』+』5』-』3』; printf(「%d,%c 」,c1,c2); }

數據輸入與運行結果:

2.2指出下面程序段中的錯誤,並加改正。

#include

int main(void)

{int a; float b; char c; scanf("%c%d%c%f";c,a,a,b);}

數據輸入與運行結果:

改正後的程序:

#include

int main(void)

{int a; float b; char c; scanf("%c,%d,%f",&c,&a,&b);

printf("%c,%d,%f",c,a,b);}

運行結果:

2.3寫出下面程序段執行後變數a,b,c的值。

char a=』2』,b=』a』;int c;c=a+b;a=c;

數據輸入與運行結果:

程序:#include

int main(void)

{char a='2';char b='a';int c;c=a+b;a=c;

printf("%d,%d,%d",a,b,c);}

運行結果:

實驗三 分支結構程序設計

一、目的和要求

1、熟練掌握關系表達式和邏輯表達式的使用。

2、熟練掌握用嵌套的if語句和switch語句實現多分支程序設計。

3、熟練掌握switch語句中break語句的作用。

4、掌握使用斷點調試程序的方法。

二、實驗環境

硬體環境:計算機(windows xp系統)

三、實驗內容

3.1 軟體環境:Turbo C3.0或VC++6.0

>>>下一頁更多精彩的「計算機c語言實訓報告範文」

『伍』 在c語言中如何實現函數模板

各種用
C
語言實現的模板可能在使用形式上有所不同。現以一個求和函數
Sum
為例,用
C++
Template
可寫如下:
template
R
Sum(const
T
*array,
int
n)
{
R
sum
=
0;
for
(int
i
=
0
;
i
<
n
;
++i)
sum
+=
i;
return
sum;
}
如果不是內置類型,該模板隱式地需要
有R
R::operator+=(T)運算符可用。
1.
使用函數指針作為
Functor
替換者
Typedef
struct
tagAddClass
{
Void
(*add)(char*
r1,
const
char*
r2);
Int
elemSize;
Char
sum[MAX_ELEM_SIZE];
}
AddClass;
void
Sum(AddClass*
self,
const
char*
array,
int
n)
{
for
(int
i
=
0
;
i
<
n
;
++i)
self->add(self->sum,
array
+
i*self->elemSize);
}
使用時:
Void
AddInt(char*
r1,
const
char*
r2)
{
*(long*)r1
+=
*(int*)r2;
}
AddClass
addClass
=
{AddInt,
2,
0
};
Int
array[100];
Read(array);
Sum(&addClass,
array,
100);
…..
2.
用宏作為Functor的替換者
#define
GenSumFun(SumFunName,
Add,
RetType,
ElemType)
RetType
SumFunName
(const
ElemType
*array,
int
n)
\
{
RetType
sum
=
0;
for
(int
i
=
0
;
i
<
n
;
++i)
Add(sum,
i);
return
sum;
}
使用時:
#define
AddInt(x,
y)
((x)
+=
(y))
GenSumFun(SumInt,
AddInt,
long,
int)
…..
Int
array[100];
Read(array);
Long
sum
=
SumInt(array,
100);
…..
3.
所有可替換參數均為宏
至少需要一個額外的文件(實現文件)為
impsum.c
/*
impsum.c
*/
RetType
FunName(const
ElemType
*array,
int
n)
{
RetType
sum
=
0;
for
(int
i
=
0
;
i
<
n
;
++i)
Add(sum,
i);
return
sum;
}
使用時:
#undef
RetType
#undef
FunName
#undef
ElemType
#undef
Add
#define
AddInt(x,
y)
((x)
+=
(y))
#define
RetType
long
#define
FunName
SumInt
#define
ElemType
int
#define
Add
AddInt
#include
impsum.c
…..
Int
array[100];
Read(array);
Long
sum
=
SumInt(array,
100);
4.
總結:
第一種方法,易於跟蹤調試,但是效率低下,適用於對可變函數(函數指針)的效率要求不高,但程序出錯的可能性較大(復雜),模板函數(Sum)本身很復雜,模板參數也比較復雜(add)的場合。
第二種方法,效率高,但很難跟蹤調試,在模板函數和模板參數本身都很復雜的時候更是如此。
第三種方法,是我最近幾天才想出的,我認為是最好的,在模板參數(Add)比較復雜時可以用函數(第二種也可以如此),簡單時可以用宏,並且,易於調試。在模板函數本身很復雜,而模板參數比較簡單時更為優越。但是,可能有點繁瑣。

『陸』 c語言按模板

定義一個足夠大的數組模

『柒』 c語言程序模板

//考慮在輸入非數字或非純數字的時候要報錯
main()
{
char str[100];
int i;
float c, f; //聲明攝氏和華氏溫度變數

printf("請輸入華氏溫度:"); //提示輸入華氏溫度
scanf("%s", str); //將輸入的字元串保存到變數str數組中

for (i = 0; i < strlen(str); i++) {
if (str[i] < '0' || str[i] > '9') {
printf("輸入不是純數字");
return;
}
} //判斷輸入的字元串里是否只有數值字元
f = atof(str); //將數值字元轉換成浮點數
c = 5.0 / 9 * (f - 32); //計算攝氏溫度
printf("攝氏溫度是%0.2f", c); //保留兩位小數輸出
}
//直接運行通過

『捌』 C語言程序編寫

C語言使用 Xcode。Xcode 是由Apple官方開發的IDE,支持C、C++、Objective-C、Swift等

『玖』 c語言菜單模板

#include
#include
void function1(){
}
void function2(){
}
void function3(){
}
int main(int argc, char *argv[]){//主函數
char choice; //暫存選擇
while(true){
printf("-----------------主題-----------21/11/14 18:38\n\n");
printf("1:功能1\n2:功能2\n3:功能3\n4:退出\n請選擇操作:");
scanf("%c",&choice);
switch(choice){
case '1' : function1();break;
case '2' : function2();break;
case '3' : function3();break;
case '4' : return 0;break;
}
system("cls");
}
}

『拾』 c語言多線程的socket簡單模板,想參考一下寫一個簡單的程序

中國絡的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似於打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。 下面用Socket實現一個windows下的c語言socket通信例子,這里我們客戶端傳遞一個字元串,伺服器端進行接收。 【伺服器端】 #include "stdafx.h" #include #include #include #define SERVER_PORT 5貳0吧 //偵聽埠 void main(