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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3273 | 回復(fù): 13
打印 上一主題 下一主題

算了,就當(dāng)我沒(méi)說(shuō)過(guò)好了。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-05-06 10:57 |只看該作者 |倒序?yàn)g覽
本帖最后由 numdisp 于 2010-05-07 23:58 編輯

原來(lái)所有上CU的人只有我一個(gè)人對(duì)這個(gè)有疑問(wèn),既然我現(xiàn)在已經(jīng)知道了,那這個(gè)帖子似乎也沒(méi)有存在的必要了,放在這兒純粹是浪費(fèi)CU的資源。
另外請(qǐng)看過(guò)人搞清楚一件事,這不是討論字符串拼接給不給warning的問(wèn)題,而是針對(duì)這個(gè)特殊的情形,錯(cuò)誤的可能性幾乎是90%以上的情況給不給warning的問(wèn)題。

唯一感謝的是二樓 daybreakcx 的回答。

最后祝各位高手寫(xiě)程序永遠(yuǎn)不要出現(xiàn)warning,需找bug的過(guò)程中居然依賴于warning提供的信息,那還不被人笑死。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-05-06 11:05 |只看該作者
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         printf("One""Two""Three""Four""\n");
  5.         return 0;
  6. }
復(fù)制代碼
C在處理多個(gè)連續(xù)的字符串的時(shí)候(之間沒(méi)逗號(hào))貌似是并成一個(gè)的,我記得在K&R還是哪里看的

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-05-06 11:14 |只看該作者
等同于:

int a[4] = {3};


這個(gè)會(huì)不會(huì)讓你發(fā)出“居然是符合語(yǔ)法的?”的驚嘆呢?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-05-06 11:16 |只看該作者
K&R 2.3節(jié)里頭有這么一段話:

The quotes are not part of the string, but serve only to delimit it. The same escape sequences used in
character constants apply in strings; \" represents the double-quote character. String constants can be
concatenated at compile time:
     "hello, " "world"
is equivalent to
     "hello, world"
This is useful for splitting up long strings across several source lines.

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-05-06 13:13 |只看該作者
學(xué)習(xí)了,貌似在apue里也提到過(guò)

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-05-06 13:58 |只看該作者
也看到過(guò) 是默認(rèn)連接字符串的

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-05-06 14:04 |只看該作者
因?yàn)檫@完全是你的錯(cuò)誤,這種寫(xiě)法并不違反語(yǔ)法規(guī)則,編譯器沒(méi)有資格報(bào)告錯(cuò)誤,也沒(méi)有義務(wù)給出警告。It's your sole responsibility to write correct code.

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-05-06 14:10 |只看該作者
連接成一個(gè)字符串了!

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-05-07 00:38 |只看該作者
回復(fù) 13# numdisp

我說(shuō)的是編譯器沒(méi)這個(gè)“義務(wù)”,你選擇warning下閾偏低或者偏高的編譯器那是你的喜好。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-05-07 01:22 |只看該作者
至于你說(shuō)的 if (a=b)
1、這個(gè)在 C# 里直接被判定為語(yǔ)法錯(cuò)誤,C# spec 里明確了這一點(diǎn);
2、是否給 warning,給到何種程度,這取決于實(shí)現(xiàn)。

----

所以這就可以回答你的問(wèn)題:
1、為什么沒(méi)有任何錯(cuò)誤?
——因?yàn),這樣的寫(xiě)法符合語(yǔ)法,編譯器忠實(shí)地執(zhí)行了語(yǔ)法檢查,確實(shí)沒(méi)有語(yǔ)法上的錯(cuò)誤,編譯器正確地遵照了 language specification,更沒(méi)有資格報(bào)錯(cuò);
2、為什么沒(méi)有任何警告?
——編譯器沒(méi)有這樣的義務(wù)。不同的編譯器對(duì)于 warning 持不同的態(tài)度,更何況多行字符串拼接通常是合乎情理的事情。既然合理,編譯器為什么要給出警告?

如果不熟悉語(yǔ)法,錯(cuò)誤在人。如果確有疏忽,錯(cuò)誤在人。如果是明知故犯,錯(cuò)誤還是在人?傊e(cuò)誤因人而起,編譯器只是做了它應(yīng)該做的。

----

我的意見(jiàn)是這樣的,你所反映的確實(shí)是很現(xiàn)實(shí)的一種情況,編譯器不妨給出一個(gè)選項(xiàng),控制是否對(duì)多行字符串拼接給出警告,默認(rèn)也不必打開(kāi)。

CMIIW.
您需要登錄后才可以回帖 登錄 | 注冊(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)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP