同感《C有C的規則》

來源:互聯網
上載者:User

 

昨天看了雲風的《C有C的規則》(http://blog.codingnow.com/2006/05/c.html),最近也小有感受。

先說說前幾天範的一個低級錯誤,以前寫java代碼的時候,高手們教導我說:局部變數用到的時候再聲明,這樣有利於程式的可讀性。所以我在c中寫出了類似如下的函數:
void foo(void)
{
 int a = 1;
 printf("%d",a); 
 int b = 3;
 printf("%d",a+b);
}
編譯怎麼也通不過,經過多次嘗試,修改成下面樣子,通過編譯:
void foo(void)
{
 int a = 1;
 int b = 3;
 printf("%d",a); 
 printf("%d",a+b);
}
C有C的規則,局部變數聲明就是要放在開始。C就是這麼簡單,它有它的道理。

由於工作變更,最近閱讀了不少C代碼。剛開始看的時候很不習慣,代碼中有太多的宏,宏定義中還可以有宏。宏說起來簡單,就是編譯的時候替換,但是規則越是簡單,用法越是靈活。以致有人感歎:宏在這些代碼中被發揮的淋漓盡致。對於下面這樣一個枚舉變數定義:
 enum fruit {
  APPLE,
  ORANGE,
  BANANA
 };
通過一些宏定義後,會變成這樣:
 DEFINE_FRUIT_BEGIN
 /*define your fruit here*/
 DEFINE(APPLE)
 DEFINE(ORANGE)
 DEFINE(BANANA)
 DEFINE_FRUIT_END
這樣看起來頗有充斥於java世界中的那些設定檔的味道:)

正如雲風在他的blog最後所說:“C 就是那麼一如既往的簡單,簡單的可愛又可恨。我用五年時間,感覺自己學會了 C++ 。但是十五年了,仍舊問自己到底可以用 C 完成多大的項目。”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.