日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言中的編碼小技巧_C 語言

作者:Извините. ? 更新時間: 2023-04-07 編程語言

C語言編碼小技巧

1. 退出程序

其中"EXIT_FAILURE"和"EXIT_SUCCESS"包含在頭文件 ?<stdlib.h> 中。

exit(EXIT_FAILURE); ? ? ? ?//異常退出,相當于exit(1)
exit(EXIT_SUCCESS); ? ? ? ?//正常退出,相當于exit(0)

還有一種就是 ?' ? _exit( ) ?' ? ,它和 ' ?exit( ) ?' 的區別就是,前者退出進程會清理I/O緩沖區,后者直接結束進程進入到內核中。

2. 注釋(相當于“刪除”)一段代碼

除了 ?" ?// ?" ?、" ?/* ?" 以外,比較保險的注釋方式為(statements表示被注釋的部分)

#if ? ?0
? ? ? ? statements
#endif

* 因為如果這段代碼內部原先就有注釋存在,這樣做就會出現問題,要從邏輯上刪除一段C語言代碼,更好的辦法如上。?

3. ?數據溢出問題

while(gets(input)!=NULL)

許多同學可能會這樣寫,但其實它可能會存在 input 數據溢出的現象,因此最好用 fgets

?while(fgets(input)!=NULL)

4. 增加程序的可讀性

為了增加程序的可讀性,我們可以引用 ?#define 來定義比如把 ?0 ?用 ?OUT , ?1 ?用 ?IN ?表示

補充:這邊對于 ?define ?的用法還存在一種解讀,它可以用于多個相同字面符的同時修改

5. Oj 1062 避免讀取無關 '\n' 小技巧

scanf(" %c%c%c",&a,&b,&c);

可以搭配循環使用,原題如下

1062: ASCII碼排序 (----循環 字符)
題目描述
輸入三個字符后,按各字符的ASCII碼從小到大的順序輸出這三個字符。

輸入
輸入數據有多組,每組占一行,有三個字符組成,之間無空格。

輸出
對于每組輸入數據,輸出一行,字符中間用一個空格分開。

樣例輸入
qwe asd zxc

樣例輸出
e q w a d s c x z

因為每次想要輸入下一行的時候,都會先輸入換行符,所以需要加一個空來吸收,代碼如下:

#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. 輸入若干值時的用法?

想必你也注意到:

while(scanf(" %c%c%c",&a,&b,&c)!=EOF) ?

這是用于輸入若干值時的用法,與 它等價的還有:

while(~scanf(" %c%c%c",&a,&b,&c)) ?

7. while搭配 ' , ' 的用法( 感受一下 ?' , ' 的靈活和魅力!)

while(scanf(" %d",&n)!=EOF,n!=-1) ?; ? ? ? ?//適用于末尾以 ' -1 ' 作為結尾的函數

8. ?const的用法(跟在哪個后面,哪個不變)

int const *pci; ? ? ? ?//指向整型常量的指針
int *const pci; ? ? ? ?//指向整型的常量指針

?9. 最精簡字符串賦值

while(*to++=*from++); ? ? ? ?//因為 '\0' 的ASCII碼為 0 !

10. 求數組元素個數?

sizeof(array)/sizeof(array[0])

總結

原文鏈接:https://blog.csdn.net/qq_63761366/article/details/125576878

欄目分類
最近更新