C語(yǔ)言中的編碼小技巧
C語(yǔ)言編碼小技巧
1. 退出程序
其中"EXIT_FAILURE"和"EXIT_SUCCESS"包含在頭文件 <stdlib.h> 中。
exit(EXIT_FAILURE); ? ? ? ?//異常退出,相當(dāng)于exit(1) exit(EXIT_SUCCESS); ? ? ? ?//正常退出,相當(dāng)于exit(0)
還有一種就是 ' _exit( ) ' ,它和 ' exit( ) ' 的區(qū)別就是,前者退出進(jìn)程會(huì)清理I/O緩沖區(qū),后者直接結(jié)束進(jìn)程進(jìn)入到內(nèi)核中。
2. 注釋?zhuān)ㄏ喈?dāng)于“刪除”)一段代碼
除了 " // " 、" /* " 以外,比較保險(xiǎn)的注釋方式為(statements表示被注釋的部分)
#if ? ?0 ? ? ? ? statements #endif
* 因?yàn)槿绻@段代碼內(nèi)部原先就有注釋存在,這樣做就會(huì)出現(xiàn)問(wèn)題,要從邏輯上刪除一段C語(yǔ)言代碼,更好的辦法如上。
3. 數(shù)據(jù)溢出問(wèn)題
while(gets(input)!=NULL)
許多同學(xué)可能會(huì)這樣寫(xiě),但其實(shí)它可能會(huì)存在 input 數(shù)據(jù)溢出的現(xiàn)象,因此最好用 fgets
?while(fgets(input)!=NULL)
4. 增加程序的可讀性
為了增加程序的可讀性,我們可以引用 #define 來(lái)定義比如把 0 用 OUT , 1 用 IN 表示
補(bǔ)充:這邊對(duì)于 define 的用法還存在一種解讀,它可以用于多個(gè)相同字面符的同時(shí)修改
5. Oj 1062 避免讀取無(wú)關(guān) '\n' 小技巧
scanf(" %c%c%c",&a,&b,&c);可以搭配循環(huán)使用,原題如下
1062: ASCII碼排序 (----循環(huán) 字符)
題目描述
輸入三個(gè)字符后,按各字符的ASCII碼從小到大的順序輸出這三個(gè)字符。輸入
輸入數(shù)據(jù)有多組,每組占一行,有三個(gè)字符組成,之間無(wú)空格。輸出
對(duì)于每組輸入數(shù)據(jù),輸出一行,字符中間用一個(gè)空格分開(kāi)。樣例輸入
qwe asd zxc樣例輸出
e q w a d s c x z
因?yàn)槊看蜗胍斎胂乱恍械臅r(shí)候,都會(huì)先輸入換行符,所以需要加一個(gè)空來(lái)吸收,代碼如下:
#include<stdio.h>
int ?main()
{
? ? char a,b,c,d;
? ? while(scanf(" %c%c%c",&a,&b,&c)!=EOF)
? ? {
? ? ?
? ? ? ? ?if(a>b) d=a,a=b,b=d; ?
? ? ? ? ?if(a>c) d=a,a=c,c=d;
? ? ? ? ?if(b>c) d=b,b=c,c=d;
? ? ? ? ?printf("%c %c %c\n",a,b,c);
? ? }
}6. 輸入若干值時(shí)的用法
想必你也注意到:
while(scanf(" %c%c%c",&a,&b,&c)!=EOF) ?這是用于輸入若干值時(shí)的用法,與 它等價(jià)的還有:
while(~scanf(" %c%c%c",&a,&b,&c)) ?7. while搭配 ' , ' 的用法( 感受一下 ' , ' 的靈活和魅力?。?/h3>
while(scanf(" %d",&n)!=EOF,n!=-1) ?; ? ? ? ?//適用于末尾以 ' -1 ' 作為結(jié)尾的函數(shù)
while(scanf(" %d",&n)!=EOF,n!=-1) ?; ? ? ? ?//適用于末尾以 ' -1 ' 作為結(jié)尾的函數(shù)8. const的用法(跟在哪個(gè)后面,哪個(gè)不變)
int const *pci; ? ? ? ?//指向整型常量的指針 int *const pci; ? ? ? ?//指向整型的常量指針
9. 最精簡(jiǎn)字符串賦值
while(*to++=*from++); ? ? ? ?//因?yàn)?'\0' 的ASCII碼為 0 !
10. 求數(shù)組元素個(gè)數(shù)
sizeof(array)/sizeof(array[0])
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言中進(jìn)行函數(shù)指針回調(diào)的實(shí)現(xiàn)步驟
在 C 語(yǔ)言中,函數(shù)指針的回調(diào)是一種強(qiáng)大的編程技術(shù),它允許我們?cè)谔囟ǖ氖录l(fā)生或特定的條件滿足時(shí),調(diào)用由用戶定義的函數(shù),這種機(jī)制增加了程序的靈活性和可擴(kuò)展性,使得代碼更具通用性和可重用性,本文給大家介紹了C語(yǔ)言中進(jìn)行函數(shù)指針回調(diào)的實(shí)現(xiàn)步驟,需要的朋友可以參考下2024-07-07
C語(yǔ)言函數(shù)基礎(chǔ)教程分類(lèi)自定義參數(shù)及調(diào)用示例詳解
這篇文章主要為大家介紹了C語(yǔ)言函數(shù)的基礎(chǔ)教程,主要包含C語(yǔ)言函數(shù)的分類(lèi),C語(yǔ)言函數(shù)自定義,C語(yǔ)言函數(shù)的參數(shù)及C語(yǔ)言函數(shù)的調(diào)用示例詳解,有需要的朋友可以借鑒參考下2021-11-11
C++實(shí)現(xiàn)學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
最新VScode C/C++ 環(huán)境配置的詳細(xì)教程
這篇文章主要介紹了最新VScode C/C++ 環(huán)境配置的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
最短時(shí)間學(xué)會(huì)基于C++實(shí)現(xiàn)DFS深度優(yōu)先搜索
常見(jiàn)使用深度優(yōu)先搜索(DFS)以及廣度優(yōu)先搜索(BFS)這兩種搜索,今天我們就來(lái)講講什么是深度優(yōu)先搜索,感興趣的可以了解一下2021-08-08

