欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語(yǔ)言

C語(yǔ)言中函數(shù)的區(qū)分有哪些

時(shí)間:2025-03-13 06:21:17 歐敏 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言中函數(shù)的區(qū)分有哪些

  C語(yǔ)言的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語(yǔ)言,適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。以下是小編為大家搜索整理的C語(yǔ)言中函數(shù)的區(qū)分,希望能給大家?guī)?lái)幫助!

  C語(yǔ)言中函數(shù)的區(qū)分有哪些

  首先,這兩個(gè)函數(shù)不是C標(biāo)準(zhǔn)庫(kù)中的函數(shù),

  int getch(void) //從標(biāo)準(zhǔn)輸入讀入一個(gè)字符,當(dāng)你用鍵盤輸入的時(shí)候,屏幕不顯示你所輸入的字符。也就是,不帶回顯。

  int getche(void) //從標(biāo)準(zhǔn)輸入讀入一個(gè)字符,鍵盤輸入的時(shí)候,屏幕顯示所輸入的字符。帶回顯。

  這兩個(gè)函數(shù)包含在頭文件conio.h中,需要記住的是conio.h不是C標(biāo)準(zhǔn)庫(kù)中的頭文件。Micorsoft 和 Borland的 C編譯器提供了conio.h,用來(lái)創(chuàng)建控制臺(tái)文本用戶界面。一般在Windows系統(tǒng)下安裝了VS、VC等,就可以包含conio.h頭文件。但是一般在Unix、Linux系統(tǒng)中, / usr / include / 中都沒(méi)有這個(gè)頭文件。

  getch和getche在等待用戶從鍵盤輸入的時(shí)候,用戶按下一個(gè)鍵后,不需要按回車,程序自動(dòng)往下執(zhí)行。在Linux中,終端輸入在缺省情況下是被“一鍋端”的,也就是說(shuō)整行輸入是被一起處理的。通常,這是一種人們所希望的方便的辦法,但它也意味著在讀入數(shù)據(jù)時(shí)必須按一下回車鍵表示輸入行結(jié)束后才能得到輸入的數(shù)據(jù)。在游戲中,很多都提供了“老板鍵”,它的實(shí)現(xiàn),就是利用了這兩個(gè)函數(shù)。

  其次,除了getch和getche,其他的都是C標(biāo)準(zhǔn)庫(kù)中的頭文件,包含在頭文件stdio.h中。

  int fgetc ( FILE xstream ); //從流stream中讀一個(gè)字符?梢詫(biāo)準(zhǔn)輸入stdin作為它的實(shí)參,這時(shí)候從標(biāo)準(zhǔn)輸入讀取一個(gè)字符。

  int getc(FILE xstream); //和fgetc等效,由fgetc通過(guò)宏實(shí)現(xiàn)。

  int getchar ( void );

  //從標(biāo)準(zhǔn)輸入stdin讀入一個(gè)字符,程序等待你輸入的時(shí)候,你可以輸入多個(gè)字符,回車后程序繼續(xù)執(zhí)行。

  //但getchar只讀入一個(gè)字符

  說(shuō)明:

  getc、getchar都是通過(guò)宏定義借助fgetc實(shí)現(xiàn)。如getchar的實(shí)現(xiàn)為,#define get) fgetc(stdin)。

  char xfgets (char xstr, int num, FILE xstream);

  //從流stream中讀入最多num個(gè)字符到字符數(shù)組str中,當(dāng)遇到換行符時(shí)、或讀到num-1個(gè)字符時(shí)停止。

  //自動(dòng)加上空字符結(jié)尾

  char xgets ( char xstr );

  //從標(biāo)準(zhǔn)輸入stdin讀取一個(gè)字符串,遇到換行或結(jié)束時(shí)候終止。

  //不同于fgets,他沒(méi)有指定num,所以需要注意字符數(shù)組str的大小。

  說(shuō)明: fgets和gets之間沒(méi)有宏定義的關(guān)系,彼此各自有自己的實(shí)現(xiàn)。蠕蟲病毒的實(shí)現(xiàn)就是函數(shù)gets的“功勞”。gets函數(shù)的任務(wù)是從流中讀入一個(gè)字符串。它的調(diào)用者會(huì)告訴它把讀入的字符串放在什么地方。但是,gets()函數(shù)并不檢查緩沖區(qū)大小,如果調(diào)用者提供了一個(gè)指向堆棧的指針,并且get()函數(shù)讀入的字符數(shù)量超過(guò)了超過(guò)了緩沖區(qū)的空間大小,get()會(huì)愉快地將多出來(lái)的字符繼續(xù)寫入到堆棧中,這就覆蓋了堆棧中原來(lái)的內(nèi)容。如:

  main()

  {char line[512]; //在程序的堆棧上分配512個(gè)字符的空間...gets(line); //蠕蟲病毒的入口,可以將惡意代碼通過(guò)多出來(lái)的數(shù)據(jù)寫入堆棧}

  建議不要用getch和getche,因?yàn)樗鼈儾皇荂標(biāo)準(zhǔn)庫(kù)中的函數(shù)。用它們寫出的程序可移植性差,不同的編譯器不保證可以包含conio.h。建議用fgets函數(shù)徹底替代gets函數(shù)。

  另外,絕大多數(shù)的這些get函數(shù),都有對(duì)應(yīng)的put版本。

  int fputc ( int character, FILE xstream );

  int putc ( int character, FILE xstream ); //通過(guò)宏定義和fputc實(shí)現(xiàn)

  int putchar ( int character );

  //通過(guò)宏定義實(shí)現(xiàn):#define putc) fputc(c, stdout)

  int fputs ( const char xstr, FILE xstream );

  int puts ( const char xstr );

  說(shuō)明:兩者之間無(wú)宏定義實(shí)現(xiàn)關(guān)系。puts(const char xstr)近似等效于fputs(cosnt char xstr, stdout),不同點(diǎn)是前者還輸出一個(gè)

  最后,關(guān)于EOF

  EOF是在stdio.h 文件中定義的符號(hào)常量,值

  C語(yǔ)言認(rèn)識(shí)

  函數(shù)(Function)是一段可以重復(fù)使用的代碼,這是從整體上對(duì)函數(shù)的認(rèn)識(shí)。

  C語(yǔ)言本身帶了很多庫(kù)函數(shù),并分門別類地放在了不同的頭文件中,使用時(shí)只要引入對(duì)應(yīng)的頭文件即可。

  除了C語(yǔ)言自帶的函數(shù),我們也可以編寫自己的函數(shù),稱為自定義函數(shù)(User-Defined Function)。自定義函數(shù)和庫(kù)函數(shù)沒(méi)有本質(zhì)的區(qū)別,表現(xiàn)形式和使用方法一樣,只是開發(fā)者不同而已。

  這一章我們就來(lái)講解如何編寫和使用自己的函數(shù)。

  參數(shù)

  函數(shù)的一個(gè)明顯特征就是使用時(shí)帶括號(hào)( ),必要的話,括號(hào)中還要包含數(shù)據(jù)或變量,稱為參數(shù)(Parameter)。參數(shù)是函數(shù)需要處理的數(shù)據(jù),例如:

  strlen(str1)用來(lái)計(jì)算字符串的長(zhǎng)度,str1就是參數(shù)。

  puts("C語(yǔ)言中文網(wǎng)")用來(lái)輸出字符串,"C語(yǔ)言中文網(wǎng)"就是參數(shù)。

  返回值

  既然函數(shù)可以處理數(shù)據(jù),那就有必要將處理結(jié)果告訴我們,所以很多函數(shù)都有返回值(Return Value)。所謂返回值,就是函數(shù)的執(zhí)行結(jié)果。例如:

  char str1[] = "C Language";

  int len = strlen(str1);

  strlen() 的處理結(jié)果是字符串 str1 的長(zhǎng)度,是一個(gè)整數(shù),我們通過(guò) len 變量來(lái)接收。

  函數(shù)返回值有固定的數(shù)據(jù)類型(int、char、float等),用來(lái)接收返回值的變量類型要一致。

【C語(yǔ)言中函數(shù)的區(qū)分有哪些】相關(guān)文章:

C語(yǔ)言中函數(shù)的區(qū)分04-10

C語(yǔ)言中指針函數(shù)與函數(shù)指針有何區(qū)別02-28

C語(yǔ)言中sscanf的用法有哪些03-28

C語(yǔ)言中的重要概念有哪些04-10

c語(yǔ)言中int的用法有哪些03-10

C語(yǔ)言中assert的用法有哪些07-29

c語(yǔ)言中indexof用法有哪些06-27

C語(yǔ)言中關(guān)于時(shí)間的函數(shù)02-19

C語(yǔ)言中strpbr()函數(shù)的用法07-25