最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言的基本編寫(xiě)規(guī)范你了解嗎

 更新時(shí)間:2022年01月15日 15:13:29   作者:DSTBP  
這篇文章主要為大家介紹了C語(yǔ)言的基本編寫(xiě)規(guī)范,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

基本編寫(xiě)規(guī)范

規(guī)范是一種規(guī)定,它是一種人為的、約定成俗的,即使不按照那種規(guī)定也不會(huì)出錯(cuò),這種規(guī)定就叫作規(guī)范。雖然我們不按照規(guī)范也不會(huì)出錯(cuò),但是那樣代碼寫(xiě)得就會(huì)很亂。如果你養(yǎng)成一種非常不好的寫(xiě)代碼的習(xí)慣,代碼寫(xiě)得亂七八糟,等到將來(lái)工作面試的時(shí)候,這樣的習(xí)慣可能會(huì)讓你失去機(jī)會(huì)。

一、代碼規(guī)范化的好處

看著整齊舒服,邏輯清楚,條理清晰。假如你現(xiàn)在用不規(guī)范的方式寫(xiě)了一萬(wàn)行代碼,現(xiàn)在能看得懂,但等過(guò)了三個(gè)月你再回頭看時(shí)就很吃力了,更不要說(shuō)給別人看了。所以代碼要寫(xiě)規(guī)范。規(guī)范的代碼不容易使程序出錯(cuò),即使出錯(cuò)了查錯(cuò)也會(huì)很方便。如果按照不規(guī)范的格式輸入代碼的話(huà),很容易出錯(cuò)。格式雖然不會(huì)影響程序的功能,但會(huì)影響可讀性。程序的格式追求清晰、美觀(guān),是程序風(fēng)格的重要構(gòu)成元素。

規(guī)范的代碼

約瑟夫環(huán)

#include <stdio.h>
#define N 100
int main()
{
   int n,m=3,s=1;   //n:總?cè)藬?shù),m:報(bào)數(shù)值,s報(bào)數(shù)人的起始編號(hào) 
   scanf("%d",&n);
   int a[N] = {0};  //數(shù)組初始化
   int i,j;
   for(i = 0; i < n; i++)	//數(shù)組遍歷
   {
       a[i] = i+1;   //i是數(shù)組的位置量,a[i]是每個(gè)人的原始編號(hào)(從1開(kāi)始) 
   }
   i=s-1;   //數(shù)組的起點(diǎn)(0) 
   while (n > 1)
   {    
       i = (i+m-1) % n;   //出圈的人在數(shù)組中的位置 
       for(j = i+1; j < n; j++)
       {
           a[j-1] = a[j];
       }
       n--;  //出局1人后,總?cè)藬?shù)-1 
       if(i == n)  //終點(diǎn)后,開(kāi)始起點(diǎn)(圍成一個(gè)圈) 
       {
         i = 0;
       }
   }
   printf("%d\n", a[i]);	//輸出留下的人的原始編號(hào) 
   return 0;
}

不規(guī)范的代碼

請(qǐng)?zhí)砑訄D片描述

#include<stdio.h>int main(void){int n,u,d,s,t;s=0;t=0;scanf("%d%d%d",&n,&u,&d);if(u>=n) printf("1");else{do{s=s+u;t++;if(s>=n)break;else{s=s-d;t++;}}while(s<=n);printf("%d",t);}}#include<stdio.h>
int main(void){int n,u,d,s,t;s=0;
t=0;
scanf("%d%d%d",&n,&u,&d);
if(u>=n) printf("1");
else{
do{s=s+u;t++;
if(s>=n)break;
else
{
s=s-d;
t++;}
}while(s<=n);
printf("%d",t);}
}

二、規(guī)范目的與基本規(guī)則

1.目的

可移植性、連貫、整潔、易于維護(hù)、易于理解、簡(jiǎn)潔

2.基本原則

1.空行

空行起著分隔程序段落的作用??招械皿w將使程序的布局更加清晰??招胁粫?huì)浪費(fèi)內(nèi)存。

規(guī)則一:定義變量后要空行。盡可能在定義變量的同時(shí)初始化該變量。

規(guī)則二:每個(gè)函數(shù)定義結(jié)束之后都要加空行。

規(guī)則三:兩個(gè)相對(duì)獨(dú)立的程序塊、變量說(shuō)明之后必須要加空行。比如上面幾行代碼完成的是 一個(gè)功能,下面幾行代碼完成的是另一個(gè)功能,那么它們中間就要加空行。這樣看起來(lái)更清晰。

請(qǐng)?zhí)砑訄D片描述

請(qǐng)?zhí)砑訄D片描述

2.空格

規(guī)則一:關(guān)鍵字之后要留空格。像 const、case 等關(guān)鍵字之后至少要留一個(gè)空格,否則無(wú)法辨析關(guān)鍵字。像 if、for、while 等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)(,以突出關(guān)鍵字。

規(guī)則二:函數(shù)名之后不要留空格,應(yīng)緊跟左括號(hào)(,以與關(guān)鍵字區(qū)別。

規(guī)則三(后不打空格; )、,、;這三個(gè)前不打空格。

規(guī)則四,之后要留空格。如果;不是一行的結(jié)束符號(hào),其后要留空格。

規(guī)則五:賦值運(yùn)算符、關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符,如 =、==、!=、+=、-=、*=、/=、%=、>>=、<<=、&=、=、|=、>、<=、>、>=、+、-、*、/、%、&、|、&&、||、<<、>>、 等雙目運(yùn)算符的前后應(yīng)當(dāng)加空格。

注意,%d 中的“%”前后不用加空格。

規(guī)則六單目運(yùn)算符 !、~、++、--、-、*、& 等前后不加空格。

規(guī)則七:像數(shù)組符號(hào)[]、結(jié)構(gòu)體成員運(yùn)算符.、指向結(jié)構(gòu)體成員運(yùn)算符->,這類(lèi)操作符前后不加空格。

規(guī)則八:對(duì)于表達(dá)式比較長(zhǎng)的 for 語(yǔ)句和 if 語(yǔ)句,為了緊湊起見(jiàn),可以適當(dāng)?shù)厝サ粢恍┛崭瘛5?for 和 if 后面緊跟的空格不可以刪,其后面的語(yǔ)句可以根據(jù)語(yǔ)句的長(zhǎng)度適當(dāng)?shù)厝サ粢恍┛崭瘛@纾?br />for (i=0; i<10; i++); //for 和分號(hào)后面保留空格就可以了,=和<前后的空格可去掉。

3.成對(duì)書(shū)寫(xiě)(有些編譯器會(huì)自動(dòng)補(bǔ)括號(hào))

成對(duì)的符號(hào)一定要成對(duì)書(shū)寫(xiě),如 ()、{}。不要寫(xiě)完左括號(hào)然后寫(xiě)內(nèi)容最后再補(bǔ)右括號(hào),這樣很容易漏掉右括號(hào),尤其是寫(xiě)嵌套程序的時(shí)候。

4.縮進(jìn)(有些編譯器會(huì)自動(dòng)縮進(jìn))

縮進(jìn)是通過(guò)鍵盤(pán)上的 Tab 鍵實(shí)現(xiàn)的,縮進(jìn)可以使程序更有層次感。原則是:如果地位相等,則不需要縮進(jìn);如果屬于某一個(gè)代碼的內(nèi)部代碼就需要縮進(jìn)。

5.對(duì)齊(有些編譯器會(huì)自動(dòng)對(duì)齊)

規(guī)則一{}分別都要獨(dú)占一行?;橐粚?duì)的{}要位于同一列,并且與引用它們的語(yǔ)句左對(duì)齊。

規(guī)則二{}之內(nèi)的代碼要向內(nèi)縮進(jìn)一個(gè) Tab,且同一地位的要左對(duì)齊,地位不同的繼續(xù)縮進(jìn)。

6.代碼行

規(guī)則一:一行代碼只做一件事情,如只定義一個(gè)變量,或只寫(xiě)一條語(yǔ)句。這樣的代碼容易閱讀,并且便于寫(xiě)注釋。

規(guī)則二:if、else、for、while、do 等語(yǔ)句自占一行,執(zhí)行語(yǔ)句不得緊跟其后。此外,非常重要的一點(diǎn)是,不論執(zhí)行語(yǔ)句有多少行,就算只有一行也要加{},并且遵循對(duì)齊的原則,這樣可以防止書(shū)寫(xiě)失誤。

7.注釋

C語(yǔ)言中一行注釋一般采用//…,多行注釋必須采用/*…*/。注釋通常用于重要的代碼行或段落提示。在一般情況下,源程序有效注釋量必須在 20% 以上。

規(guī)則一:注釋是對(duì)代碼的“提示”,而不是文檔。注釋太多會(huì)讓人眼花繚亂。

規(guī)則二:如果代碼本來(lái)就是清楚的,則不必加注釋。

規(guī)則三:邊寫(xiě)代碼邊注釋?zhuān)薷拇a的同時(shí)要修改相應(yīng)的注釋?zhuān)员WC注釋與代碼的一致性,不再有用的注釋要?jiǎng)h除。

規(guī)則四:當(dāng)代碼比較長(zhǎng),特別是有多重嵌套的時(shí)候,應(yīng)當(dāng)在段落的結(jié)束處加注釋?zhuān)@樣便于閱讀。

規(guī)則五:每一條宏定義的右邊必須要有注釋?zhuān)f(shuō)明其作用。

請(qǐng)?zhí)砑訄D片描述

#include <stdio.h>
int main()
{
	int i = 0;
	int x,y,z;
	int n;
	scanf("%d",&n);
	for(x = 0 ; x <= 100 ; x++)   // 5分
	{
		for(y = 0 ; y <= 100 ; y++)   //2分
		{
			for(z = 0 ; z <= 100 ; z++)  //1分
			{
			    //判斷硬幣面值相加等于150分時(shí),還要三種硬幣相加等于100枚
				if((x*1 + y*2 + z*5 == 150) && x+y+z == 100)
				{
					i++;
					if(z > 0 && z <= n)
					{//判斷前N種方案
						printf("%d %d %d",z,y,x);
						if(z < n)
						{//換行輸出,同時(shí)最后一行輸出完,不再換行
							printf("\n");
						}
					}
				}
			}
		}
	}
	return 0;
}

三、其他細(xì)節(jié)

1.頭文件放在代碼最前面,頭文件include從抽象到具體,次序:C標(biāo)準(zhǔn)庫(kù)→C++標(biāo)準(zhǔn)庫(kù)→OS相關(guān)→第三方庫(kù)→工程頭文件

2.標(biāo)識(shí)符的命名要清晰、明了,有明確含義,同時(shí)使用完整的單詞或大家基本可以理解的縮寫(xiě),避免使人產(chǎn)生誤解

常見(jiàn)縮寫(xiě)

請(qǐng)?zhí)砑訄D片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++ class和struct到底有什么區(qū)別詳解

    C++ class和struct到底有什么區(qū)別詳解

    這篇文章主要介紹了C++ class和struct到底有什么區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C語(yǔ)言之整數(shù)劃分問(wèn)題(遞歸法)實(shí)例代碼

    C語(yǔ)言之整數(shù)劃分問(wèn)題(遞歸法)實(shí)例代碼

    這篇文章主要介紹了C語(yǔ)言之整數(shù)劃分問(wèn)題(遞歸法)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • c語(yǔ)言求余數(shù)的實(shí)例講解

    c語(yǔ)言求余數(shù)的實(shí)例講解

    在本篇文章里小編給大家整理的是關(guān)于c語(yǔ)言如何求余數(shù)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 一文詳解Qt如何優(yōu)雅的進(jìn)行界面布局

    一文詳解Qt如何優(yōu)雅的進(jìn)行界面布局

    使? Qt 在界?上創(chuàng)建的控件, 都是通過(guò) “絕對(duì)定位” 的?式來(lái)設(shè)定的,這種設(shè)定?式其實(shí)并不?便,尤其是界?如果內(nèi)容?較多, 不好計(jì)算,所以Qt 引??布局管理器 (Layout)?機(jī)制, 來(lái)解決上述問(wèn)題,需要的朋友可以參考下
    2024-05-05
  • C++基于遞歸算法解決漢諾塔問(wèn)題與樹(shù)的遍歷功能示例

    C++基于遞歸算法解決漢諾塔問(wèn)題與樹(shù)的遍歷功能示例

    這篇文章主要介紹了C++基于遞歸算法解決漢諾塔問(wèn)題與樹(shù)的遍歷功能,簡(jiǎn)單描述了遞歸算法的原理,并結(jié)合實(shí)例形式分析了基于遞歸算法解決漢諾塔問(wèn)題與數(shù)的遍歷相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • C++設(shè)計(jì)模式之代理模式(Proxy)

    C++設(shè)計(jì)模式之代理模式(Proxy)

    這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之代理模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C語(yǔ)言實(shí)現(xiàn)一個(gè)通訊錄

    C語(yǔ)言實(shí)現(xiàn)一個(gè)通訊錄

    這篇文章主要為大家詳細(xì)介紹了用C語(yǔ)言實(shí)現(xiàn)一個(gè)通訊錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • c語(yǔ)言中形參與實(shí)參的關(guān)系解讀

    c語(yǔ)言中形參與實(shí)參的關(guān)系解讀

    這篇文章主要介紹了c語(yǔ)言中形參與實(shí)參的關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺析C/C++中動(dòng)態(tài)鏈接庫(kù)的創(chuàng)建和調(diào)用

    淺析C/C++中動(dòng)態(tài)鏈接庫(kù)的創(chuàng)建和調(diào)用

    下面小編就為大家?guī)?lái)一篇淺析C/C++中動(dòng)態(tài)鏈接庫(kù)的創(chuàng)建和調(diào)用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 一道面試題教你輕松玩轉(zhuǎn)C++指針

    一道面試題教你輕松玩轉(zhuǎn)C++指針

    下面小編就為大家?guī)?lái)一篇深入理解c++指針的指針和指針的引用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09

最新評(píng)論

资阳市| 长寿区| 荆州市| 金湖县| 万山特区| 谢通门县| 白沙| 上饶市| 上饶市| 东乡| 南通市| 湾仔区| 章丘市| 屯留县| 法库县| 信丰县| 海门市| 江川县| 巨鹿县| 赞皇县| 仁化县| 博白县| 常宁市| 赤水市| 梓潼县| 太仓市| 柳江县| 明水县| 毕节市| 漳浦县| 甘孜县| 静宁县| 霍城县| 石嘴山市| 广灵县| 金坛市| 靖宇县| 饶河县| 台中市| 呼伦贝尔市| 双流县|