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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

幫分析一下 這段C代碼

幫分析一下 這段C代碼

元芳怎么了 2019-04-07 11:18:56
看到下面代碼c#define_MARK(p,mark)*((unsigned*)(p+strlen(p)+1))=(mark)#defineIS_MARK(p)(*(unsigned*)(p+strlen(p)+1)==0x6A8FCE84)p是一個字符串指針,_MARK就是將字符串后臺\0替換掉。IS_MARK是判斷是否存在標(biāo)記的這個值。對于前面的unsigned*以及最前的*有些疑惑?為什么要強制轉(zhuǎn)換為unsigned*?
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

如果p是字符串指針,那么#define_MARK(p,mark)*((char*)(p+strlen(p)+1))=(mark)這樣子賦值只會對p+strlen(p)+1指向地址的一個8位的字符類型數(shù)據(jù)有效,也就是\0后面的8位。而#define_MARK(p,mark)*((unsigned*)(p+strlen(p)+1))=(mark)會將\0后面的32位當(dāng)作一個無符號整形,那么賦值會對這32位有效。
#defineIS_MARK(p)(*(unsigned*)(p+strlen(p)+1)==0x6A8FCE84)同理。
所以根本不是吧\0替換掉啊。。。
不過你確定這樣子做在某些時候不會發(fā)生奇怪的事情。。。?
                            
查看完整回答
反對 回復(fù) 2019-04-07
?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗 獲得超7個贊

為了符合語境(context),這樣的話,
一來編譯器不會報警告
二來讀程序的人也會更加明白
說到底你要是不寫unsigned*那也是可以的
                            
查看完整回答
反對 回復(fù) 2019-04-07
  • 2 回答
  • 0 關(guān)注
  • 357 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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