導航:首頁 > 源碼編譯 > 編譯錯誤代碼全部出現

編譯錯誤代碼全部出現

發布時間:2022-07-11 08:09:39

『壹』 c語言 編譯時總是出現錯誤,請大神指點

我想這個應該和我碰到的問題差不多。
有這種情況,就是當你寫的程序(比如上面你寫的gfd.exe)運行後,點擊圖形界面上的那個叉。後圖形界面退出了。但是進程並沒有退出,所以你更改代碼,重新編譯要生成gfd.exe時,系統提示無法寫入。因為gfd.exe的進程還在跑,這個文件還在使用中,所以不能生成新的gfd.exe文件將其覆蓋。
解決方法也很簡單,打開任務管理器,殺死進程gfd,exe就可以了。

『貳』 程序編譯錯誤不知道是什麼原因

不能通編譯過的程序實際上還不是合法的程序,因為它不滿足C語言對於程序的基本要求。

檢查語法錯誤的第一要義:集中力量檢查系統發現的第一個錯誤,弄清並改正它。

在編譯過程中系統發現的錯誤主要有兩類:基本語法錯誤和上下文關系錯誤。這些錯誤都在表面上,可以直接看得見。也是比較容易弄清,比較容易解決的。關鍵是需要熟悉C語言的語法規定和有關上下文關系的規定,按照這些規定檢查程序正文,看看存在什麼問題。

編譯中系統發現錯誤都能指出錯誤的位置。不同系統在這方面的能力有差異,在錯誤定位的准確性方面有所不同。有的系統只能指明發現錯誤的行,有的系統還能夠指明行內位置。

一般說,系統指明的位置未必是真實錯誤出現的位置。通常情況是錯誤出現在前,而系統發現錯誤在後,因為它檢查到實際錯誤之後的某個地方,才能確認出了問題,因此報出錯誤信息。要確認第一個錯誤的原因,應該從系統指明的位置開始,在那裡檢查,並從那裡開始向前檢查。

系統的錯誤信息中都包含一段文字,說明它所認定的錯誤原因。應該仔細閱讀這段文字,通常它提供了有關錯誤的重要線索。但也應該理解,錯誤信息未必准確,有時錯誤確實存在,但系統對錯誤的解釋也可能不對。也就是說,在查找錯誤時,既要重視系統提供的錯誤信息,又不應為系統的錯誤信息所束縛。

發現了問題,要想清楚錯誤的真正原因,然後再修改。不要蠻干。在這時的最大誘惑就是想趕快改,看看錯誤會不會消失。但是蠻乾的結果常常是原來的錯誤沒有弄好,又搞出了新的錯誤。

另一個值得注意的地方:程序中的一個語法錯誤常常導致編譯系統產生許多錯誤信息。如果你改正了程序中一個或幾個錯誤,下面的弄不清楚了,那麼就應該重新編譯。改正一處常常能消去許多錯誤信息行。

解決語法錯誤

常見語法錯誤:

1)缺少語句、聲明、定義結束的分號。

2)某種括弧不配對。C語言中括弧性質的東西很多,列舉如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括弧不配對可能引起許多不同的錯誤信息。

3)關鍵字拼寫錯誤。

較難認定的典型錯誤:

1)宏定義造成的錯誤。這種東西不能在源程序文件中直接看到,是在宏替換之後出現的。常見的能引起語法錯誤的宏定義錯誤:宏定義中有不配對的括弧,宏定義最後加了不該有的分號,……

解決上下文關系錯誤

1)變數沒有定義。產生這個問題的原因除了變數確實沒有大意外,還可能是變數的拼寫錯誤,變數的作用域問題(在不能使用某個變數的地方想去用那個變數)。

2)變數重復定義。例如在同一個作用域里用同樣名字定義了兩個變數,函數的局部變數與參數重名等。

3)函數的重復定義。可能是用同一個名字定義了兩個不同的函數。或者是寫出的函數原型在類型上與該函數的定義不相符。有時沒有原型而直接寫函數調用也可能導致這種錯誤信息,因為編譯程序在遇到函數調用而沒有看到函數原型或函數定義時,將給函數假定一個默認原型。如果後來見到的函數定義與假定不符,就會報告函數重復定義錯誤。

4)變數類型與有關運算對運算對象或者函數對參數的要求不符。例如有些運算(如 %)要求整數參數,而你用的是某種浮點數。

5)有些類型之間不能互相轉換。例如你定義了一個結構變數,而後要用它給整數賦值。系統容許的轉換包括:數值類型之間的轉換,整數和指針之間的轉換,指針之間的轉換。其餘轉換(無論是隱含的,還是寫出強制)都不允許。參見《C語言程序設計》(K&R)197-199頁。

如何看待編譯警告

當編譯程序發現程序中某個地方有疑問,可能有問題時就會給出一個警告信息。警告信息可能意味著程序中隱含的大錯誤,也可能確實沒有問題。對於警告的正確處理方式應該是:盡可能地消除之。對於編譯程序給出的每個警告都應該仔細分析,看看是否真的有問題。只有那些確實無問題的警告才能放下不管。

注意:經驗表明,警告常常意味著嚴重的隱含錯誤。

常見警告:

1)(局部自動)變數沒有初始化就使用。如果對局部指針變數出現這種情況,後果不堪設想。對於一般局部自動變數,沒有初始化就使用它的值也不會是有意義的。

2)在條件語句或循環語句的條件中寫了賦值。大部分情況是誤將 == (等於判斷)寫成 = 了。這是很常見的程序錯誤,有些編譯程序對這種情況提出警告。

『叄』 為什麼在網上找的一些c語言程序的代碼在vc++6.0中編譯總是出現錯誤求指教

第一,如果提示某些字元錯誤(一般看上去是空格,但字元碼和空格不一樣,編譯器不識別),你可以把它的空格全部去掉,再重新整理格式,用查找替換功能協助。
第一,如果沒有特殊字元,你要區分它是不是標準的c語言程序。重點看頭文件,比如graphics,conio是TC裡面的,自然無法再vc6中使用。
你最好有tc和vc兩個編譯器,有個c/c++學習實驗系統集成了tc2 tc3 vc6三者的,你可以試試。

『肆』 程序代碼編譯出現錯誤

你試下這個代碼, 你原來的操作符重載格式不對
#include <iostream>
using namespace std;

class vector1
{

int x,y;
public:
vector1()
{
}
vector1(int x1,int y1)
{
x=x1;
y=y1;
}
friend vector1 operator +=(vector1 v1,vector1 v2)
{
v1.x+=v2.x;
v1.y+=v2.y;
return v1;
}
friend vector1 operator -=(vector1 v1, vector1 v2)
{
vector1 tmp;
tmp.x=v1.x-v2.x;
tmp.y=v1.y-v2.y;
return tmp;
}
void display()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
};
void main()
{
vector1 v1(6,8),v2(3,6),v3,v4;
cout<<"v1=";
v1.display();
cout<<"v2=";
v2.display();
v3=v1+=v2;
v4=v1-=v2;
v3.display();
v4.display();
}

『伍』 如何修復vbs代碼電腦顯示編譯錯誤

先把vbs文件放到一個沒有中文也沒有空格的路徑中試試

『陸』 VC++編譯出錯,錯誤代碼:error C1189,請各位高手指點一下。

2個解決辦法。
1.工程-》屬性-》C/C++-》代碼生成-》運行時庫:修改成: 多線程調試(/MTd); (release版本也修改成 多線程(/MT)

2.工程-》屬性-》常規-》MFC的使用:修改為:在靜態庫中使用 MFC
方法2不一定管用,PC機上的MFC(相對於EVC而言)程序都是多線程的(不信你照2修改試試,會出現找不到_beginthread函數的定義),必須設置多線程版本的運行時庫。也就是照1的設置

大哥多給點分吧

『柒』 C語言:下面的代碼為什麼會出現編譯錯誤應當怎麼改正

錯誤出在a=sum;這一句——因為構成C語言程序的基本單位是函數而不是C語句,這里的a=sum;不在任何函數中,所以編譯器無法處理而出錯。把它放到主函數中的printf("%d ",a(3,5));之前就可以了。函數外只能進行全局變數定義或聲明,而不能進行其他操作,所以把int (*a)(int, int); a=sum;兩句改成int (*a)(int, int)=sum;,讓它成為聲明變數a並初始化為sum也是可以的。你可以試試。

代碼文本:

#include "stdio.h"

int sum(int a, int b);

int (*a)(int, int);

int main(int argc,char *argv[]){

a=sum;

printf("%d ",a(3,5));

return 0;

}

int sum(int a,int b){

return a+b;

}

閱讀全文

與編譯錯誤代碼全部出現相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:578
python員工信息登記表 瀏覽:376
高中美術pdf 瀏覽:160
java實現排列 瀏覽:512
javavector的用法 瀏覽:981
osi實現加密的三層 瀏覽:231
大眾寶來原廠中控如何安裝app 瀏覽:915
linux內核根文件系統 瀏覽:242
3d的命令面板不見了 瀏覽:525
武漢理工大學伺服器ip地址 瀏覽:148
亞馬遜雲伺服器登錄 瀏覽:524
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:929
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:250
哈夫曼編碼數據壓縮 瀏覽:425
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:349