導航:首頁 > 源碼編譯 > 編譯器bug解析

編譯器bug解析

發布時間:2022-08-17 16:39:58

A. c語言scanf輸入float編譯器出錯,編譯器故障

#include<stdio.h>
#include<math.h>
#include<iostream.h>
#include<string>
usingnamespacestd;
voidmain()
{


floata;
scanf("%f",&a);
cout<<a<<endl;

}

沒問題啊。

B. vc編譯器通過了,運行也不報錯,但出不來結果,求給看看bug在哪···

你的問題多多。
由於沒有aa.txt文本文件,沒法進行測試,能看出來的錯誤有:
1: fp=fopen("C:\\Users\\aa.txt","r");//這樣寫
2:x,y=t(x,y);//這種寫法不正確
3:return x,y;//一個函數只能有一個返回值,你這樣搞是沒用的,請使用指針

C. 編譯器錯誤。怎麼辦

這是兩個截然不同的概念。不是叫做:編譯器錯誤,而是應該叫做:編譯錯誤。如果說真的是編譯器內部本身(例如:C語言編譯器、或者是別的各種編程語言的編譯器)出現了bug 的話,那麼任何人也沒有辦法。只有開發編譯器軟體的軟體開發人員才能夠解決這樣的問題;
如果是在你的源程序中產生的各種編譯錯誤(例如:語法錯誤、語義錯誤等),那麼你只能夠仔細地檢查、編譯、調試你的源程序了。

D. 我的編譯器關於printf函數似乎有了BUG

E. VS2015調試C++,盡管代碼正確但編譯器就是會停止工作,這是為什麼

VS2015 win7 64位系統

我也遇到過這個問題,當時是代碼里有一個語法錯誤,有一個變數名我沒有注意被重定義了,按F7編譯就會出現這個問題。應該是VS的C++ 編譯器的一個bug。我把代碼錯誤修了之後就沒問題了。建議你在程序和功能裡面修復一下VS2015 或者直接改用 VS2017。

F. 軟體中的bug是什麼意思

所謂「(Bug)」,是指電腦系統的硬體、系統軟體(如操作系統)或應用軟體(如文字處理軟體)出錯。硬體的出錯有兩個原因,一是設計錯誤,一是硬體部件老化失效等。軟體的錯誤全是廠家設計錯誤。那種說用戶執行了非法操作的提示,是軟體廠商不負責的胡說八道。用戶可能會執行不正確的操作,比如本來是做加法但按了減法鍵。這樣用戶會得到一個不正確的結果,但不會引起bug發作。軟體廠商在設計產品時的一個基本要求,就是不允許用戶做非法的操作。只要允許用戶做的,都是合法的。用戶根本就沒有辦法知道廠家心裡是怎麼想的,哪些操作序列是非法的。

從電腦誕生之日起,就有了電腦BUG。第一個有記載的bug是美國海軍的編程員,編譯器的發明者格蕾斯·哈珀(Grace Hopper)發現的。哈珀後來成了美國海軍的一個將軍,領導了著名計算機語言Cobol的開發。

1945年9月9日,下午三點。哈珀中尉正領著她的小組構造一個稱為「馬克二型」的計算機。這還不是一個完全的電子計算機,它使用了大量的繼電器,一種電子機械裝置。第二次世界大戰還沒有結束。哈珀的小組日以繼夜地工作。機房是一間第一次世界大戰時建造的老建築。那是一個炎熱的夏天,房間沒有空調,所有窗戶都敞開散熱。

突然,馬克二型死機了。技術人員試了很多辦法,最後定位到第70號繼電器出錯。哈珀觀察這個出錯的繼電器,發現一隻飛蛾躺在中間,已經被繼電器打死。她小心地用攝子將蛾子夾出來,用透明膠布帖到「事件記錄本」中,並註明「第一個發現蟲子的實例。」[1]

從此以後,人們將計算機錯誤戲稱為蟲子(bug),而把找尋錯誤的工作稱為(debug)。

G. Devc++編譯器是不是有bug啊

這不是編譯器的bug,問題在這一句: *q++=*q+1;,這就叫未知行為語句,這一句裡面的q++到底在什麼時候產生副作用沒有標准,不同的編譯器,不同的環境下可能會有不同的做法。
你的預期是:
*q=*q+1;
q=q+1;
而devc++是這樣做的:
char& r=*q; //為方便說明問題定義一個引用
q=q+1;
r=*q+1; //於是當前字元被賦值為下一個字元的值+1
也就是說q++是在「=」賦值操作前起作用的
那麼最後一個字元j就會被賦值為'\0'+1,也就是整數1,你可以%d輸出下試試
避免這種情況的唯一辦法就是不要寫這樣的代碼,把++,--操作放到獨立行上就不會有問題了
while(*q)
{
*q=*q+1; //或者(*q)++; 這個不會有問題
q++;
}

這樣寫就不會有問題了

H. BUG是什麼意識啊

「BUG」的由來:
Bug一詞的原意是「臭蟲」或「蟲子」。但是現在,在電腦系統或程序中,如果隱藏著的一些未被發現的缺陷或問題,人們也叫它「Bug」,這是怎麼回事呢?
原來,第一代的計算機是由許多龐大且昂貴的真空管組成,並利用大量的電力來使真空管發光。可能正是由於計算機運行產生的光和熱,引得一隻小蟲子�Bug鑽進了一支真空管內,導致整個計算機無法工作。研究人員費了半天時間,總算發現原因所在,把這只小蟲子從真空管中取出後,計算機又恢復正常。後來,Bug這個名詞就沿用下來,表示電腦系統或程序中隱藏的錯誤、缺陷或問題。
與Bug相對應,人們將發現Bug並加以糾正的過程叫做「Debug」,意即「捉蟲子」或「殺蟲子」。遺憾的是,在中文裡面,至今仍沒有與「Bug」准確對應的詞彙,於是只能直接引用「Bug」一詞。雖然也有人使用「臭蟲」一詞替代「Bug」,但容易產生歧義,所以推廣不開。
所謂「(Bug)」,是指電腦系統的硬體、系統軟體(如操作系統)或應用軟體(如文字處理軟體)出錯。硬體的出錯有兩個原因,一是設計錯誤,一是硬體部件老化失效等。軟體的錯誤全是廠家設計錯誤。那種說用戶執行了非法操作的提示,是軟體廠商不負責的胡說八道。用戶可能會執行不正確的操作,比如本來是做加法但按了減法鍵。這樣用戶會得到一個不正確的結果,但不會引起bug發作。軟體廠商在設計產品時的一個基本要求,就是不允許用戶做非法的操作。只要允許用戶做的,都是合法的。用戶根本就沒有辦法知道廠家心裡是怎麼想的,哪些操作序列是非法的。
從電腦誕生之日起,就有了電腦BUG。第一個有記載的bug是美國海軍的編程員,編譯器的發明者格蕾斯·哈珀(GraceHopper)發現的。哈珀後來成了美國海軍的一個將軍,領導了著名計算機語言Cobol的開發。
1945年9月9日,下午三點。哈珀中尉正領著她的小組構造一個稱為「馬克二型」的計算機。這還不是一個完全的電子計算機,它使用了大量的繼電器,一種電子機械裝置。第二次世界大戰還沒有結束。哈珀的小組日以繼夜地工作。機房是一間第一次世界大戰時建造的老建築。那是一個炎熱的夏天,房間沒有空調,所有窗戶都敞開散熱。
突然,馬克二型死機了。技術人員試了很多辦法,最後定位到第70號繼電器出錯。哈珀觀察這個出錯的繼電器,發現一隻飛蛾躺在中間,已經被繼電器打死。她小心地用攝子將蛾子夾出來,用透明膠布帖到「事件記錄本」中,並註明「第一個發現蟲子的實例。」[1]
從此以後,人們將計算機錯誤戲稱為蟲子(bug),而把找尋錯誤的工作稱為(debug)。

閱讀全文

與編譯器bug解析相關的資料

熱點內容
歌詞滾動效果android 瀏覽:14
程序員一天的六場戰斗 瀏覽:797
自製壓縮泵的做法 瀏覽:622
androidstring變數 瀏覽:247
數學乘法速演算法 瀏覽:986
壓縮包製作後照片順序怎麼改 瀏覽:680
fibonacci數列演算法 瀏覽:775
產品經理要和程序員吵架嗎 瀏覽:252
grub2命令行 瀏覽:618
無法獲取加密卡信息 瀏覽:774
雲伺服器網卡充值 瀏覽:509
編程就是軟體 瀏覽:49
伺服器如何添加許可權 瀏覽:437
引用指針編程 瀏覽:851
手機加密日記本蘋果版下載 瀏覽:64
命令行括弧 瀏覽:176
java程序升級 瀏覽:490
排序演算法之插入類 瀏覽:227
gcccreate命令 瀏覽:73
海爾監控用什麼app 瀏覽:64