|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
代碼居然還可以這樣寫, 有人見過嗎? Cool!! |
| 作者:rockos 欄目:驅(qū)動編程 |
摘自linux-2.6.18/drivers/video/console/fbcon.c, LINE 344: SWITCH (color) { case 0: color = 0; /* black */ break; case 1 ... 6: color = 2; /* WHITE */ break; case 7 ... 8: color = 1; /* gray */ break; default: color = 3; /* intense WHITE */ break; } 偶一直老老實實地寫case 1: case 2: ... case6: 的說…… 這樣的代碼真是帥呆了……反正偶寫代碼這么多年,頭一次見到 |
| 2樓: | >>參與討論 |
| 作者: yugen 于 2007/3/2 16:27:00 發(fā)布:
gcc支持 這種寫法不是標準C的寫法,具我所知只有g(shù)cc支持 |
|
| 3樓: | >>參與討論 |
| 作者: lxg_fly 于 2007/3/2 16:38:00 發(fā)布:
re 我喜歡,不錯,我也是第一次見啊~! |
|
| 4樓: | >>參與討論 |
| 作者: 風(fēng)吹草動 于 2007/3/3 23:09:00 發(fā)布:
書寫格式? 先模仿一下 case 1...6 case 1 ... 6 不過奇怪的是什么時候要這樣做? |
|
| 5樓: | >>參與討論 |
| 作者: fineamy 于 2007/3/5 8:45:00 發(fā)布:
Gcc作了好多更方便的擴展啊! |
|
| 6樓: | >>參與討論 |
| 作者: rockos 于 2007/3/5 14:56:00 發(fā)布:
re 風(fēng)吹早動 SWITCH (x) { case 1: case 2: case 3: case 4: .... break; default: .... break; } 和 SWITCH(x) { case 1 ... 4: .... break; default: .... break; } 可以少寫幾條case語句,但是如果區(qū)域比較大,比如有100個case做同樣的事情,gcc的這個語法優(yōu)勢就出來的(當然,不能向其它編譯器移植)。 另外可行的做法是連續(xù)使用if...else...語句,不過可讀性都沒有SWITCH/case語句好,代碼效率或許會高一些,但也不一定。 偶特崇拜那些寫編譯器的大牛們…… |
|
| 7樓: | >>參與討論 |
| 作者: 平常人 于 2007/3/12 20:49:00 發(fā)布:
Linux中太多這種不標準的東西,結(jié)果變成阻礙其發(fā)展的一大障礙 |
|
| 8樓: | >>參與討論 |
| 作者: fineamy 于 2007/3/13 8:52:00 發(fā)布:
GCC好象是由BISON生成, 而ASCI C是由YACC生成,但BISON兼容YACC,所以GCC兼容ASCI C但反過來不行. |
|
| 9樓: | >>參與討論 |
| 作者: rockos 于 2007/3/13 16:13:00 發(fā)布:
不見得 Linux內(nèi)核和gcc編譯器互相依存, 互相推動, 才能源源不斷地發(fā)展下去. Linux內(nèi)核和gcc分道揚鑣, 對linux和gcc來講都不是好消息。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |