在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式代碼的排版問題

CHANBAEK ? 來源:南山府嵌入式 ? 作者:南山府嵌入式 ? 2023-04-15 15:01 ? 次閱讀

簡介:

對于代碼的規范性不管是做純軟件開發的還是做嵌入式開發的或者使用各種語言的,都是非常重要的。 代碼的規范性對編寫人員對代碼后期的維護以及其他開發人員閱讀等都是非常友好的。 接下來我們會對代碼的規范性進行說明(當然,根據個人的情況和企業的不同可能要求不一樣,我就根據我個人的一個情況進行一些說明,本專題不作為最終范本,僅用來作為參考)

排版問題

本篇就說說代碼的排版問題,這東西就像家里裝修一樣,好的裝修會讓人心里很舒服,同樣代碼也是如此,一個好的代碼排版也會給別人帶來一個好的感覺。

程序的縮進

代碼盡量采用縮進風格(特別是程序塊)縮進空格為4個

對待嗎的有關結構、函數、分支、循環、以及枚舉等復雜或較為復雜的程序結構在進行編寫的時候,要將它的內容縮進 一層。

比如大括號({}):大括號是一個非常明顯的標志,凡是遇到大括號,都應該直接聯想到縮進。

分支結構: 包括 if… else 結構、switch 結構等

循環結構:包括 for 結構、while/do… while 結構等

以上這些都需要進行縮進。

下面舉個例子:

if語句

1if (a > b)
 2{
 3  /*if 子句的結構體內容應縮進*/
 4  max = a;
 5  min = b;
 6}
 7else
 8{
 9  /*else子句的結構體內容應縮進*/
10  max = b;
11  min = a;
12}

開關

1  switch (expression)
 2  {
 3    /*switch結構的內層縮進(也包括內容)*/
 4    case 0:
 5      break;
 6    case 1:
 7      /*case的內層(內容)也要縮進*/
 8      break;
 9    default:
10      break;
11  }

for語句

1for (size_t i = 0; i < count; i++)
2{
3  /*for循環縮進*/
4  data[i + 1] = data[i];
5}

while語句

1while (i != 0)
2{
3  /* 內容縮進 */
4  tx = yx;
5  x++;
6}

函數

1void RCC_Configuration(void)
 2{
 3  /* Enable GPIO clock */
 4  RCC_APB2PeriphClockCmd(USARTy_GPIO_CLK | USARTz_GPIO_CLK | RCC_APB2Periph_AFIO, ENABLE);
 5
 6#ifndef USE_STM3210C_EVAL
 7  /* Enable USARTy Clock */
 8  RCC_APB2PeriphClockCmd(USARTy_CLK, ENABLE);
 9#else
10  /* Enable USARTy Clock */
11  RCC_APB1PeriphClockCmd(USARTy_CLK, ENABLE);
12#endif
13  /* Enable USARTz Clock */
14  RCC_APB1PeriphClockCmd(USARTz_CLK, ENABLE);
15}

這里就不一一列舉了,總之代碼縮進空格數4。

代碼語句過長要變短

如果代碼語句過長要多行書寫(比如>100個字符這樣)

如果代碼語句過長或者較長(比如:>100字符)要進行多行編寫,對于長的表達式,要在操作符處進行換行,操作符盡可能的放在新的一行首位,同時要對新行進行適當的縮進,使代碼排列整齊,整體美觀可讀性好。

舉例

1int example(void)
2{
3  int my_Value=1;
4  /*這是一個很長的語句,所以我們來進行新行,從第二行開始進行一個縮進*/
5  my_Value=my_Value+my_Value1+my_Value2+my_Value3+my_Value5+my_Value
6           +my_Value8+my_Value9+my_Value10;
7  /*后面的就是恢復正常的縮進位置*/
8  my_Value = 100;
9}

對于循環、判斷等語句中若有較長的表達式或語句,同樣要進行適當的語句劃分,同樣換新行,在新行中表達式操作符要放在首位,然后進行縮進。

舉例

1int example(void)
2{
3  if ((expression < USART_GetFlagStatus(USARTz, USART_FLAG_RXNE))
4      && (USART_GetFlagStatus(USARTz, USART_FLAG_RXNE)))
5  {
6    ... /* code*/
7  }
8}

同樣對于函數參數也是一樣的,都要進行適當的進行新行,同時也要適當的進行縮進,讓代碼整齊,是可讀性不受干擾。

舉例

1void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct,
2              RCC_APB2PeriphResetCmd* GPIO_InitStruc)
3

當有多個短語句的時候

不要把多個短語句寫入到一行中

也就是說,不管一條語句有多短,都要一行只能寫一條短語句。

多個短語句寫一行并沒有錯,但是會讓人很自動的認為那只有一條語句,因此應該是多個語句多行書寫。

例如:

舉例

1int example(void)
2{
3  /*這是不規范的*/
4  led.b = 0;  led.aa = 0;
5  /*應該寫成下面這樣*/
6  led.b = 0;
7  led.aa = 0;
8}

對分支語句、循環語句中{}的來說

if、for、do、while、case、switch、 default等所有的語句都要自占一行,并且if、for、do、while、if--else等語句的執行語句部分無論多少都要加括號{},同時大括號{},都要獨占一行。

舉例

1int example(void)
 2{
 3  /*下面就是不規范的*/
 4  if (i == 0)
 5    a = b;
 6  else
 7    b = e;
 8
 9  /*正確的寫法*/
10  if (i == 0)
11  {
12    a = b;
13  }
14  else
15  {
16    b = e;
17  }
18}
1int example(void)
 2{
 3  /*下面是不規范的*/
 4  for (...){
 5    ... /* program code */
 6  }
 7  /*下面是規范的*/
 8  for ()
 9  {
10    /* code */
11  }
12}

這里推薦大家寫代碼的時候使用VScode或者其他具有自動縮進方式的IDE。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5086

    文章

    19143

    瀏覽量

    306044
  • Switch
    +關注

    關注

    1

    文章

    533

    瀏覽量

    58289
  • 函數
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62734
  • 代碼
    +關注

    關注

    30

    文章

    4798

    瀏覽量

    68728
  • 程序結構
    +關注

    關注

    1

    文章

    7

    瀏覽量

    6936
收藏 人收藏

    評論

    相關推薦

    嵌入式系統接口應用

    嵌入式系統原理與接口技術》——嵌入式系統接口應用基礎本文為我負責編寫的電子工業出版社出版的《嵌入式系統原理與接口技術》一書第七章部分,這里整理的仍然是修改稿,供需要的同學參考,本書為普通高等教育
    發表于 08-09 06:56

    如何調試嵌入式代碼

    我們在進行嵌入式系統開發調試時,受限于嵌入式芯片資源和性能,一般采用遠程調試。在調試嵌入式底層代碼時,gdbserver 無法運行,我們該怎么調試底層
    發表于 12-17 06:32

    Caché嵌入式代碼分享

    文章目錄第十章 Caché 嵌入式代碼嵌入式HTML`&html`標記語法嵌入式JavaScript嵌入式SQL第十章 Caché
    發表于 12-17 07:19

    嵌入式系統原理、設計與應用

    嵌入式操作系統的原理和開發方法,而是講述嵌入式系統的通用技術和基本原理、嵌入式產品的開發方法等內容。例如書中的給出的代碼屬于類C語言代碼
    發表于 04-25 17:07 ?2次下載

    EDK9.1嵌入式開發實驗代碼

    Xilinx FPGA工程例子源碼:EDK9.1嵌入式開發實驗代碼
    發表于 06-07 14:13 ?2次下載

    嵌入式代碼之編寫規范

    嵌入式代碼編碼規范,用于規范自己的代碼,增強可讀性,非標準規范。最好能強制自己形成良好的編碼風格,有利于開發
    的頭像 發表于 04-26 15:21 ?5294次閱讀

    盤點幾種主流嵌入式架構的代碼壓縮技術

    對于嵌入式軟件而言,代碼尺寸是越小越好。壓縮代碼以適應受到成本或空間限制的存儲子系統已經成為嵌入式系統開發的一項重要事務。
    的頭像 發表于 05-27 15:37 ?4543次閱讀

    如何將嵌入式代碼優化

    嵌入式代碼優化,除了最基本的函數實現細節算法優化外,還有一些細節的處理。
    發表于 09-25 09:34 ?1404次閱讀

    關于嵌入式代碼的致命漏洞

    隨著互聯網的發展,嵌入式設備正分布在一個充滿可以被攻擊者利用的源代碼級安全漏洞的環境中。因此,嵌入式軟件開發人員應該了解不同類型的安全漏洞——特別是代碼注入。 術語“
    的頭像 發表于 01-06 15:13 ?1812次閱讀

    嵌入式代碼的致命安全漏洞

    隨著互聯網的發展,嵌入式設備正分布在一個充滿可以被攻擊者利用的源代碼級安全漏洞的環境中。因此,嵌入式軟件開發人員應該了解不同類型的安全漏洞——特別是代碼注入。 術語“
    的頭像 發表于 01-15 15:07 ?2221次閱讀

    嵌入式外中斷c語言代碼

    嵌入式外中斷c語言代碼(arm嵌入式開發實例)-嵌入式外中斷c語言代碼,有需要的可以參考!
    發表于 07-30 11:29 ?4次下載
    <b class='flag-5'>嵌入式</b>外中斷c語言<b class='flag-5'>代碼</b>

    嵌入式框架-分層

    嵌入式架構有多重要?要做到嵌入式應用的代碼邏輯清晰,且避免重復的造輪子,沒有好的應用架構怎么行?如果沒有好的架構,移植將會是一件很痛苦的事情。如果沒有好的架構,復用是最大的難題,沒法更大限度的復用
    發表于 10-20 16:06 ?24次下載
    <b class='flag-5'>嵌入式</b>框架-分層

    初識ARM嵌入式系統

    ARM嵌入式系統的基本結構和常見的ARM微處理器ARM被稱為嵌入式微處理器核。ARM嵌入式系統由3部分組成,即嵌入式系統硬件平臺,嵌入式操作
    發表于 10-21 12:51 ?16次下載
    初識ARM<b class='flag-5'>嵌入式</b>系統

    嵌入式開發蜂鳴器代碼

    嵌入式開發蜂鳴器代碼
    發表于 03-29 17:04 ?3次下載

    嵌入式代碼高效運行指南

    嵌入式C語言之所以經久不衰,在于它的運行效率很高,想要高效運行代碼,除了編譯器幫忙優化,關鍵還要靠自己“優化”代碼
    的頭像 發表于 01-06 15:32 ?902次閱讀
    主站蜘蛛池模板: 高清不卡毛片免费观看| 艹逼免费视频| 亚洲a网| 美女操出水| 久久亚洲免费视频| 色爱综合区| 91福利国产在线观看网站| 天天做天天爱夜夜想毛片| 国产aaaaaa| 国产一级淫| 精品三级在线| 就要爱综合| 农村苗族一级特黄a大片| 日韩毛片高清免费| 四虎国产精品4hu永久| 亚洲va久久久噜噜噜久久男同| 中国videos偷窥| 99热精品一区| 成人三级网址| 中文在线最新版天堂bt| 久久精品最新免费国产成人| 欧美爱爱帝国综合社区| 欧美19禁| 网站毛片| 四大名著成人高h肉版| 欧美啪啪小视频| 久久精品人| 伊人久久影视| 天天综合久久| 国产视频分类| 2018国产精品| 黄色大片在线视频| 亚洲视频1区| 老师叫我揉她内裤越快越好| 亚洲高清免费视频| 日韩欧美亚洲综合久久影院d3| 两性色视频| 天天干天天操天天干| 久久精品国产精品亚洲红杏| 国产伦精品一区二区三区免费| 五月婷婷在线播放|