1. gzyueqian
      13424082685
      首頁 > 新聞中心 > > 正文

      編程中的排版藝術

      更新時間: 2007-02-02 21:25:30來源: 粵嵌教育瀏覽量:1186

        排版

        1:程序塊要采用縮進風格編寫,縮進為1個tab所產生的空格。

        說明:由于我們所開發的程序的特殊性,所以建議使用統一的編輯器。根據目前的情況,在sysol2 或sysol3 平臺下,使用source insight 做為開發編輯器,統一tab鍵的排版。

        2:相對獨立的程序塊之間、變量說明之后必須加空行。

        示例:如下例子不符合規范。

      if (!valid_ni(ni))
      {
      ... // program code
      }
      repssn_ind = ssn_data[index].repssn_index;
      repssn_ni = ssn_data[index].ni;

      應如下書寫
      if (!valid_ni(ni))
      {
      ... // program code
      }

      repssn_ind = ssn_data[index].repssn_index;
      repssn_ni = ssn_data[index].ni;

        3:較長的語句(>80字符)要分成多行書寫,長表達式要在低優先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進行適當的縮進,使排版整齊,語句可讀。

        示例:

      perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN
      + STAT_SIZE_PER_FRAM * sizeof( _UL );

      act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied
      = stat_poi[index].occupied;

      act_task_table[taskno].duration_true_or_false
      = SYS_get_sccp_statistic_state( stat_item );

      report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)
      && (n7stat_stat_item_valid (stat_item))
      && (act_task_table[taskno].result_data != 0));

        4:循環、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分,長表達式要在低優先級操作符處劃分新行,操作符放在新行之首。 
       
         示例:

      if ((taskno < max_act_task_number)
      && (n7stat_stat_item_valid (stat_item)))
      {
      ... // program code
      }

      for (i = 0, j = 0; (i < BufferKeyword[word_index].word_length)
      && (j < NewKeyword.word_length); i++, j++)
      {
      ... // program code
      }

      for (i = 0, j = 0;
      (i < first_word_length) && (j < second_word_length);
      i++, j++)
      {
      ... // program code
      }

        5:若函數或過程中的參數較長,則要進行適當的劃分。
       
        示例:

      n7stat_str_compare((BYTE *) & stat_object,
      (BYTE *) & (act_task_table[taskno].stat_object),
      sizeof (_STAT_OBJECT));

      n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER
      + index, stat_object );

        6:不允許把多個短語句寫在一行中,即一行只寫一條語句。

        示例:如下例子不符合規范。

      rect.length = 0; rect.width = 0;

      應如下書寫
      rect.length = 0;
      rect.width = 0;

        7:if、for、do、while、case、switch、default等語句自占一行,且if、for、do、while等語句的執行語句部分無論多少都要加括號{}。

        示例:如下例子不符合規范。

      if (pUserCR == NULL) return;

      應如下書寫:
      if (pUserCR == NULL)
      {
      return;
      }

        8:對齊只使用tab鍵,不使用空格鍵。

        9:函數或過程的開始、結構的定義及循環、判斷等語句中的代碼都要采用縮進風格,case語句下的情況處理語句也要遵從語句縮進要求。

        10:程序塊的分界符(如C/C++語言的大括號‘{’和‘}’)應各獨占一行并且位于同一列,同時與引用它們的語句左對齊。在函數體的開始、結構的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進方式。
              示例:如下例子不符合規范。

      for (...) {
      ... // program code
      }

      if (...)
      {
      ... // program code
      }

      void example_fun( void )
      {
      ... // program code
      }

      應如下書寫。
      for (...)
      {
      ... // program code
      }

      if (...)
      {
      ... // program code
      }

      void example_fun( void )
      {
      ... // program code
      }

        11:在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者前后要加空格;進行非對等操作時,如果是關系密切的立即操作符(如->),后不應加空格。

        說明:采用這種松散方式編寫代碼的目的是使代碼更加清晰。

        由于留空格所產生的清晰性是相對的,所以,在已經非常清晰的語句中沒有必要再留空格,如果語句已足夠清晰則括號內側(即左括號后面和右括號前面)不需要加空格,多重括號間不必加空格,因為在C/C++語言中括號已經是清晰的標志了。

        在長語句中,如果需要加的空格非常多,那么應該保持整體清晰,而在局部不加空格。給操作符留空格時不要連續留兩個以上空格。

        示例:

        (1) 逗號、分號只在后面加空格。

      int a, b, c;

        (2)比較操作符, 賦值操作符"="、 "+=",算術操作符"+"、"%",邏輯操作符"&&"、"&",位域操作符"<<"、"^"等雙目操作符的前后加空格。

      if (current_time >= MAX_TIME_VALUE)
      a = b + c;
      a *= 2;
      a = b ^ 2;

        (3)"!"、"~"、"++"、"--"、"&"(地址運算符)等單目操作符前后不加空格。

      *p = 'a'; // 內容操作"*"與內容之間
      flag = !isEmpty; // 非操作"!"與內容之間
      p = &mem; // 地址操作"&" 與內容之間
      i++; // "++","--"與內容之間

        (4)"->"、"."前后不加空格。

      p->id = pid; // "->"指針前后不加空格

        (5) if、for、while、switch等與后面的括號間應加空格,使if等關鍵字更為突出、明顯。

      if (a >= b && c > d)
      12:一行程序以小于80字符為宜,不要寫得過長。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 先锋天堂AV在线网 | 在线观看国产免费一级AV | 中文字字幕在线中文乱码不 | 亚洲男女Av中文字幕 | 亚洲永久精品在线看 | 中文字幕精品久久久 |