您好,登錄后才能下訂單哦!
怎么使用VC++ 6.0編譯器,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
VC++ 6.0編譯作為一個(gè)高效的.NET程序語言。其混合了函數(shù)語言和物件導(dǎo)向程序編制語言,并且***的適用于編程、算法、技術(shù)和探索性開發(fā),因此可以在使用的過程當(dāng)中感受到趣味性和吸引力。
和VS 6.0這個(gè)產(chǎn)品的成熟相比,VC++ 6.0的編譯器的的確確相對(duì)來說有些糟糕,其中最被詬病的是對(duì)模板技術(shù)支持很不好。
按照C++標(biāo)準(zhǔn),這里定義的變量var出了for循環(huán)應(yīng)該被銷毀。也就是說下面這段代碼是有效的:
for (int i = 0; i < 100; ++i) func(); for (int i = 0; i < 100; ++i) func2();
而下面這段代碼應(yīng)該編譯不過:
for (int i = 0; i < 100; ++i) { if (has_found_it()) { handle_find_result(); break; } } if (i == 100) do_not_found();
然而VC++ 6.0對(duì)于***段代碼會(huì)報(bào)變量i重復(fù)定義錯(cuò)誤,而第二段代碼編譯通過。為了讓VC++ 6.0的for語句看起來符合C++標(biāo)準(zhǔn),你可以這樣做:
if (cond) if (1) for (int i = 0; i < 100; ++i) func1(); else func2();
你會(huì)發(fā)現(xiàn)很有趣,這樣define一下后,VC++ 6.0編譯的for語句完全符合C++標(biāo)準(zhǔn)了!而且由于編譯器的優(yōu)化,Release版本不會(huì)增加任何額外的開銷。喜歡“鉆牛角尖”的朋友可能會(huì)說:嗯,不錯(cuò)的主意。但是——為什么不這樣做:
template <class T1, class T2> T1 func(T2 arg) { T1 var; ... // 處理var過程 return var; } void test() { int result1 = func<int>(1); double result2 = func<double>(2); };
很抱歉,這種用法VC++ 6.0不支持。讓人惱火的是,VC++ 6.0編譯時(shí)不會(huì)提示錯(cuò)誤,但是生成的執(zhí)行代碼卻很成問題。
看完上述內(nèi)容,你們掌握怎么使用VC++ 6.0編譯器的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。