第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C逗號(hào)運(yùn)算符

C逗號(hào)運(yùn)算符

為什么在逗號(hào)運(yùn)算符(例如下面的示例)中指定的表達(dá)式不被視為常量表達(dá)式?例如,int a = (10,20) ;當(dāng)在全局范圍內(nèi)給出時(shí)產(chǎn)生錯(cuò)誤“初始化器不是常量”,盡管由逗號(hào)運(yùn)算符分隔的兩個(gè)表達(dá)式都是常量(常量表達(dá)式)。為什么整個(gè)表達(dá)式不被視為常量表達(dá)式?為了澄清我已經(jīng)閱讀了','運(yùn)算符在C中做了什么?和C逗號(hào)運(yùn)算符的使用。他們沒(méi)有涉及逗號(hào)運(yùn)算符的這個(gè)方面。
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

節(jié)6.6/3,“常量表達(dá)式”,在ISO C99標(biāo)準(zhǔn)的是你需要的部分。它指出:


常量表達(dá)式不應(yīng)包含賦值,遞增,遞減,函數(shù)調(diào)用或逗號(hào)運(yùn)算符,除非它們包含在未計(jì)算的子表達(dá)式中。


在ISO的C99基本原理文檔中,有一個(gè)小片段:


整數(shù)常量表達(dá)式必須只涉及在轉(zhuǎn)換時(shí)可知的數(shù)字,以及沒(méi)有副作用的運(yùn)算符。


而且,因?yàn)橛幸粋€(gè)在使用逗號(hào)操作毫無(wú)意義可言,如果你不依賴(lài)的副作用,它是在一個(gè)常量表達(dá)式?jīng)]用。


通過(guò)這個(gè),我的意思是兩個(gè)代碼段之間絕對(duì)沒(méi)有區(qū)別:


while (10, 1) { ... }

while     (1) { ... }

因?yàn)?0實(shí)際上并沒(méi)有做任何事情。事實(shí)上,


10;

這是一個(gè)完全有效的,但不是很有用的C語(yǔ)句,大多數(shù)人都不理解,直到他們更好地了解語(yǔ)言。


然而,就是這兩個(gè)語(yǔ)句之間的區(qū)別:


while (  10, 1) { ... }

while (x=10, 1) { ... }

后者使用逗號(hào)運(yùn)算符會(huì)產(chǎn)生副作用,即將變量設(shè)置x為10。


至于為什么他們不喜歡常量表達(dá)式中的副作用,常量表達(dá)式的全部意義在于它們可以在編譯時(shí)進(jìn)行求值而無(wú)需執(zhí)行環(huán)境 - ISO對(duì)轉(zhuǎn)換(編譯時(shí))和執(zhí)行進(jìn)行區(qū)分(運(yùn)行時(shí))環(huán)境。


關(guān)于為什么ISO決定要求編譯器提供執(zhí)行環(huán)境信息(除了包含在頭文件中的東西之外)的原因的線(xiàn)索limits.h可以在理論文檔中稍后找到:


然而,雖然實(shí)現(xiàn)當(dāng)然允許在轉(zhuǎn)換和執(zhí)行環(huán)境中產(chǎn)生完全相同的結(jié)果,但要求這被認(rèn)為是許多交叉編譯器的不可容忍的負(fù)擔(dān)。


換句話(huà)說(shuō),ISO不希望交叉編譯器的制造商承擔(dān)為每個(gè)可能的目標(biāo)承載執(zhí)行環(huán)境的負(fù)擔(dān)。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

ISO / IEC 9899:1999 6.6 / 3(常量表達(dá)式)規(guī)定,不同的表達(dá)式不應(yīng)包含逗號(hào)運(yùn)算符(除非是未計(jì)算的子表達(dá)式的一部分),因此(10,20)根據(jù)定義,它不是常量表達(dá)式。

基本原理必須是因?yàn)槎禾?hào)表達(dá)式的第一部分的值不是使用它只有它的副作用,并且常量表達(dá)式?jīng)]有副作用。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

編譯器不將其視為常量表達(dá)式,因?yàn)樽兞渴亲詣?dòng)的。允許在運(yùn)行時(shí)進(jìn)行評(píng)估并獲取值。嘗試使變量成為靜態(tài),您將看到相同的錯(cuò)誤消息,因?yàn)榫幾g器將需要一個(gè)常量表達(dá)式。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
  • 3 回答
  • 0 關(guān)注
  • 817 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)