japonensisJAVA進(jìn)不去 在C 編程中,領(lǐng)導(dǎo)堅持用char而不用string,string有那么可怕嗎?
在C 編程中,領(lǐng)導(dǎo)堅持用char而不用string,string有那么可怕嗎?在C中優(yōu)先使用字符串是一個好習(xí)慣。除非C的頑固習(xí)慣,否則應(yīng)該使用字符串而不是字符。Char用于處理任何8位數(shù)據(jù)類型,如邏
在C 編程中,領(lǐng)導(dǎo)堅持用char而不用string,string有那么可怕嗎?
在C中優(yōu)先使用字符串是一個好習(xí)慣。除非C的頑固習(xí)慣,否則應(yīng)該使用字符串而不是字符。
Char用于處理任何8位數(shù)據(jù)類型,如邏輯值、整數(shù)、字符ASCII碼等。要處理字符串,需要使用Char[]數(shù)組,這很麻煩,也很難控制。
String是一個模板類,專門用于處理字符串,并封裝了許多成員函數(shù)來處理字符串。它是C標(biāo)準(zhǔn)庫的一部分,所有C實(shí)現(xiàn)都支持它,并由C創(chuàng)始人推薦。
選擇使用哪一種并不困難。
我是菜鳥,請問各位高手LEA SI,BUFFER和MOV SI,OFFSET BUFFER的區(qū)別?
lea的源操作數(shù)(第二個操作數(shù))可以是任何內(nèi)存尋址模式。例如,leasi,[4]leasi,[BX]leasi,[BX 4]leasi,[BX Di]leasi,[BX Di 4]leasi,bufferleasi,[BX]bufferleasi,[BX]bufferleasi,[BX Di]buffer是可以的,但是offset后面只能跟一個標(biāo)簽。另外,由于lea有一條對應(yīng)的指令,所以它會被編譯成相應(yīng)的指令,而offset是一條偽指令。最后,它將被編譯成一個常量,表示偏移地址、偏移量和標(biāo)簽。例如,如果這樣定義:datasegmentbufferdb100dataends movsi,那么offset buffer最終會編譯成movsi[0],所以結(jié)論是:地址復(fù)雜時最好選擇lea,因?yàn)樗梢员4嬉恍┲噶?。如果只是一個標(biāo)簽,那就要看你的心情了