亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2550 | 回復(fù): 9
打印 上一主題 下一主題

請(qǐng)問:#if *與 if(*)有什么區(qū)別呢? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-07-25 13:46 |只看該作者 |倒序?yàn)g覽
RT,是不是一樣?

論壇徽章:
1
雙子座
日期:2015-01-04 14:25:06
2 [報(bào)告]
發(fā)表于 2008-07-25 13:51 |只看該作者
不一樣
一個(gè)是預(yù)處理機(jī)制里用的
一個(gè)C語言用的

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-07-25 21:56 |只看該作者
剛剛看GNU Coding Standards
Richard Stallman,
last updated June 10, 2008

3.5 Conditional Compilation
When supporting configuration options already known when building your program we
prefer using if (... ) over conditional compilation, as in the former case the compiler is
able to perform more extensive checking of all possible code paths.
For example, please write
if (HAS_FOO)
...
else
...
instead of:
#ifdef HAS_FOO
...
#else
...
#endif
A modern compiler such as GCC will generate exactly the same code in both cases, and
we have been using similar techniques with good success in several projects. Of course, the
former method assumes that HAS_FOO is defined as either 0 or 1.
While this is not a silver bullet solving all portability problems, and is not always appropriate,
following this policy would have saved GCC developers many hours, or even days,
per year.
In the case of function-like macros like REVERSIBLE_CC_MODE in GCC which cannot be
simply used in if( ...) statements, there is an easy workaround. Simply introduce another
macro HAS_REVERSIBLE_CC_MODE as in the following example:
#ifdef REVERSIBLE_CC_MODE
#define HAS_REVERSIBLE_CC_MODE 1
#else
#define HAS_REVERSIBLE_CC_MODE 0
#endif

[ 本帖最后由 ychang0918 于 2008-7-25 21:57 編輯 ]

論壇徽章:
39
2017金雞報(bào)曉
日期:2017-02-08 10:39:4219周年集字徽章-周
日期:2023-04-15 12:02:2715-16賽季CBA聯(lián)賽之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:27
4 [報(bào)告]
發(fā)表于 2008-07-25 21:58 |只看該作者
不一樣

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-07-25 22:00 |只看該作者
#if是條件編譯,在預(yù)處理階段處理,預(yù)處理完成后根本就沒有這樣這樣的代碼了
下一階段才是編譯,處理if分支語句

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-07-25 22:10 |只看該作者
原帖由 ychang0918 于 2008-7-25 21:56 發(fā)表
剛剛看GNU Coding Standards
Richard Stallman,
last updated June 10, 2008

3.5 Conditional Compilation
When supporting configuration options already known when building your program we
prefer ...

找到個(gè)翻譯
如果已經(jīng)知道配置選項(xiàng),那么在編譯你的程序時(shí),應(yīng)該使用if(...)而不是條件編譯,因?yàn)樵谇耙环N情況下,編譯器能夠?qū)λ锌赡艿穆窂竭M(jìn)行廣泛的檢查.
比如: 要寫
if(HAS_FOO)
...
else
...
而不是:
#ifdef HAS_FOO
...
#else
...
#endif

對(duì)于這兩種情況,現(xiàn)代的編譯器比如GCC將會(huì)生成完全相同的代碼,并且我們已經(jīng)在幾個(gè)項(xiàng)目中成功地使用了類似的技術(shù).當(dāng)然,前一種方法假定HAS_FOO被定義為0或1.
盡管它并不象銀彈(silver bullet)那樣解決了所有的可移植性問題,并且并不是總是很恰當(dāng),但是遵照這種策裸可以每年節(jié)省GCC開發(fā)者許多小時(shí),甚至許多天.
在處理GCC中的類似函數(shù)的宏比如REVERSIBLE_CC_MODE時(shí),不能簡(jiǎn)單地使用if(>...)語句.這里有一種簡(jiǎn)單的方法. 再引入另外一個(gè)宏HAS_REVERSIBLE_CC_MODE宏即可. 例如:
#ifdef REVERSIBLE_CC_MODE
#define HAS_REVERSIBLE_CC_MODE 1
#else
#define HAS_REVERSIBLE_CC_MODE 0
#endif

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-07-25 23:48 |只看該作者
原帖由 xi2008wang 于 2008-7-25 22:10 發(fā)表

找到個(gè)翻譯
如果已經(jīng)知道配置選項(xiàng),那么在編譯你的程序時(shí),應(yīng)該使用if(...)而不是條件編譯,因?yàn)樵谇耙环N情況下,編譯器能夠?qū)λ锌赡艿穆窂竭M(jìn)行廣泛的檢查.
比如: 要寫
if(HAS_FOO)
...
els ...

多謝,知道了~~~

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-07-27 17:40 |只看該作者
簡(jiǎn)單說來,你做主的時(shí)候,用 #if;否則,用 if。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-07-27 17:41 |只看該作者
原帖由 yecheng_110 于 2008-7-25 13:51 發(fā)表
不一樣
一個(gè)是預(yù)處理機(jī)制里用的
一個(gè)C語言用的


預(yù)處理器也是C語言編譯系統(tǒng)的一部分。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2008-07-27 18:43 |只看該作者

回復(fù) #6 xi2008wang 的帖子

很詳細(xì)
學(xué)習(xí)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP