當前位置:首頁 » 編程軟體 » 在編譯時會檢查出什麼錯誤

在編譯時會檢查出什麼錯誤

發布時間: 2023-05-16 07:55:04

㈠ 按異常在編譯時是否被檢測來分,異常可以分成哪兩種

檢查時異常(checkException)和運行時異常(runtime Exception)

c語言源程序在編譯,鏈接,運行時,可能發生的錯誤類型有哪些

剛畢業時也是很迷茫,但是我很幸運的是我遇到了我的幸福之星,他是一個非常牛的人。其實C和C++是一個想學編程的最好的入門語言。但是如果你要走這條路的話那你可要准備做好受打擊了心裡准備了,因為這兩門語言的確是很難的,要學的的話你至少要學四到五年才能去做一些東西。它倆都是和底層打交道的,所以要考慮計算機硬體的一些東西。除此之外你還要懂好多的,不過任何事都一樣難學肯定是學出山也很牛了,是這樣的你可以看看美國微軟的程序員不就是搞底層開發的嗎?當然對這兩門語言你做到這樣就可以了。對C你只要把譚浩強《C程序設計》上的每一道題練的很熟就可以了,一定要記得只有你自己編出來才是你的,看懂的永遠也不是你的。對於C++它不是練你的編程的邏輯思維的,而是讓你有一個面向對象的思想。你要做的是不停的去思考。還有等你學完之後,可試著朝「B/S模式」開發應用發展。當然這只是我的意見。我覺的咱現在還是以掙錢為主,其他的以後再說了,你覺的呢。最後祝你學業有成!好了就給你說到此了。有問題網路見!

㈢ c++中什麼是語法錯誤,什麼是編譯錯誤

程序的錯誤主要分成三種:

  1. 編譯鏈接錯誤;

    編譯鏈接錯誤又分成編譯錯和鏈接錯。

    編譯錯就是普通意義上的語法錯,編譯器進行語法檢查不通過,也就是程序違背了計算機語言的語法,例如:括弧不匹配、變數名拼寫錯誤、用保留字定義變數名等;

    鏈接錯是指程序通過了語法檢查,但是無法生成可執行文件,最常見的是鏈接找不到lib庫。初學者有時寫了函數的聲明,但是缺少函數的定義,此時就會出現鏈接錯。

  2. 運行錯誤;

    運行錯是程序可以執行,但是在執行過程中發生異常,提前退出程序。最常見的是指針越界,打開文件失敗繼續讀取文件,總而言之是讓計算機執行一些不能執行的語句。

  3. 邏輯錯誤

    邏輯錯是程序也能運行,就是結果不對,主要原因有:程序演算法本身錯誤,程序和演算法不同義等。

    例如:新手經常將判斷相等的==寫成=賦值,往往就會導致邏輯錯。

你的BD(int,int); 是一句函數調用?還是一句函數聲明?

㈣ 關於C語言在編譯時常出現的錯誤有哪些

1、fatal error C1010: unexpected end of file while looking for precompiled header directive。

尋找預編譯頭文件路徑時遇到了不該遇到的文件尾。(一般是沒有#include "stdafx.h")

2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory

不能打開包含文件「R…….h」:沒有這樣的文件或目錄。

3、error C2011: 'C……': 'class' type redefinition

類「C……」重定義。

4、error C2018: unknown character '0xa3'

不認識的字元'0xa3'。(一般是漢字或中文標點符號)

5、error C2057: expected constant expression

希望是常量表達式。(一般出現在switch語句的case分支中)

6、error C2065: 'IDD_MYDIALOG' : undeclared identifier

「IDD_MYDIALOG」:未聲明過的標識符。

7、error C2082: redefinition of formal parameter 'bReset'

函數參數「bReset」在函數體中重定義。

8、error C2143: syntax error: missing ':' before '{'

句法錯誤:「{」前缺少「;」。

9、error C2146: syntax error : missing ';' before identifier 'dc'

句法錯誤:在「dc」前丟了「;」。

10、error C2196: case value '69' already used

值69已經用過。(一般出現在switch語句的case分支中)

11、error C2509: 'OnTimer' : member function not declared in 'CHelloView'

成員函數「OnTimer」沒有在「CHelloView」中聲明。

12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'

重載的函數「void reset(int)」在類「B」中找不到。

13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention

類B對類A中同名函數f1的重載僅根據返回值或調用約定上的區別。

14、error C2660: 'SetTimer' : function does not take 2 parameters

「SetTimer」函數不傳遞2個參數。

15、warning C4035: 'f……': no return value

「f……」的return語句沒有返回值。

16、warning C4553: '= =' : operator has no effect; did you intend '='?

沒有效果的運算符「= =」;是否改為「=」?

17、warning C4700: local variable 'bReset' used without having been initialized

局部變數「bReset」沒有初始化就使用。

18、error C4716: 'CMyApp::InitInstance' : must return a value

「CMyApp::InitInstance」函數必須返回一個值。

19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing

連接錯誤:不能打開P1.exe文件,以改寫內容。(一般是P1.Exe還在運行,未關閉)

20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)"

連接時發現沒有實現的外部符號(變數、函數等)。

function call missing argument list 調用函數的時候沒有給參數。

member function definition looks like a ctor, but name does not match enclosing class 成員函數聲明了但沒有使用

unexpected end of file while looking for precompiled header directive 在尋找預編譯頭文件時文件意外結束,編譯不正常終止可能造成這種情況

㈤ C++,編譯過程中,編譯和連接時分別檢查的是什麼錯誤(如語法……)

編譯的時候檢查語言錯誤,包括關鍵字對應的語義邏輯,括弧匹配,變數和函數存在定義或聲明等

鏈接的時候,就要真正把需要調用的各種變數和函數的二進制代碼匹配起來,比如你使用了某個變數,你使用之前聲明為外部定義,而實際上你沒有給出過實際定義,這是就會報錯了。這是所有可執行代碼檢測的過程。之前編譯是每個文件單獨變數,生成obj文件。

㈥ c程序進行編譯的過程中,可發現注釋中的拼寫錯誤

c程序進行編譯的過程中,是不可以發現注釋中的拼寫錯誤的。注釋中的拼寫錯誤只可能通過人工檢查發現。
因為C語言編譯時,不檢查注釋的內容。

㈦ 編譯的時候能發現哪些錯誤

詞法分析階段能夠檢測出輸入中不能形成源州銀語言任何記號的錯誤字元串。語法分析階段可以確簡扮定記號流中違反源語言結構(語法)規則的錯誤。語義分析階段試圖檢測出具有正確語法結構但對操作無意義的部分。例如,我們試圖將兩個標識符相加,其中冊咐宴一個標識符是數組名,而另一個標識符卻是過程名。(編譯原理-龍書原話)。其他錯誤例如演算法錯誤編譯程序檢測不出。

㈧ 編譯程序可發現源程序全部的什麽錯誤和部分的什麽錯誤

編譯程序可發現源程序全部的「語法」錯誤和部分的「語義」錯誤。
特意找了詳細解釋幫你理解:用戶編寫的源程序不可避免的會有一些錯誤,這些錯誤大致可以分為靜態錯誤和動態錯誤。動態錯誤也稱動態語義錯誤,它們發生在程序運行時,例如除數為0、引用數組元素下標錯誤等。靜態錯誤是之編譯階段發現的程序錯誤,可分為語法錯誤和靜態語義錯誤,如單詞拼寫錯誤、標點符號錯誤、表達式缺少操作數、括弧不匹配等有關語言結構上的錯誤稱為語法錯誤,而語義分析時發現的運算符與運算對象不合法等錯誤屬於靜態語義錯誤。語義分析階段主要檢查源程序是否包含靜態語義錯誤,而一般的編譯器很難檢查出動態語義錯誤。

㈨ 2、 在VB中設計程序時,能自動被檢查出來的錯誤是什麼

VB中的錯誤共分為3種,分別是語法錯誤、邏輯錯誤和自定義錯誤。語法錯誤是指輸入的語句不符合VB語法規則,如將if錯輸成fi等等。這類錯誤在編譯時系統會自動檢測出來,並提示錯誤發生的位置等信息,所行緩扮以這種錯誤又稱編譯期錯誤。邏輯錯誤是指我們輸入的語法符合VB語法規則,但程序達不到我們要求的功能。例如我們編寫了一個加法程序,運行後卻發現程序不能完成兩數相加的功能。這類程序由於語法正確,而是程序邏輯上存在錯誤,檔灶因此系統不會提示任何信息,必須通過自己調試來發現錯誤。自定義錯誤則是我們自己定義的一種錯誤類哪卜型。

㈩ C語言編程時 都有什麼樣的錯誤提示

Ambiguous operators need parentheses
不明確的運算,需要用括弧括起來

Ambiguous symbol 'xxx'
不明確的符號

Argument list syntax error
參數表語法錯誤

Array bounds missing
丟失數組界限符

Array size too large
數組尺寸太大

Bad character in parameters
參數中有不適當的字元

Bad file name format in include directive
包含命令中文件名格式不正確

Bad ifdef directive syntax
編譯預處理ifdef有語法錯誤

Bad ifndef directive syntax
編譯預處理ifndef有語法錯誤

Bad undef directive syntax
編譯預處理undef有語法錯誤

Call of non-function
調用未定義的函數

Call to function with no prototype
調用函數時沒有函數的說明

Cannot modify a const object
不允許修改常量對象

Case outside of switch
Case 出現在 switch 之外

Case statement missing
漏掉了 Case 語句

Case syntax error
Case 語法錯誤

Case outside of switch
Case 出現在 switch 之外

Case statement missing
漏掉了 Case 語句

Case syntax error
Case 語法錯誤

Code has no effect
代碼不可能執行到

Compound statement missing }
復合語句漏掉了"}"

Conflicting type modifiers
不明確的類型說明符

Constant expression required
要求常量表達式

Constant out of range in comparison
在比較中常量超出范圍

Conversion may lose significant digits
轉換時會掉失有意義的數字

Conversion of near pointer not allowed
不允許轉換返指針

Could not find file 'xxx'
找不到xxx文件

Declaration missing ;
說明缺少分號";"

Declaration syntax error
說明中出現語法錯誤

Default outside of switch
default出現在switch語句之外

Define directive needs an identifier
定義編譯預處理需要標識符

Division by zero
用零作除數

Do statement must have while
do-while語句中缺少while部分

Enum syntax error
枚舉類型語法錯誤

Enumeration constant syntax error
枚舉常數語法錯誤

Error directive: xxx
錯誤的編譯預處理命令

Error writing output file
寫輸出文件錯誤

Expression syntax error
表達式語法錯誤

Extra parameter in call
調用時出現多餘錯誤

File name too long
文件名太長

Function call missing )
函數調用缺少右括弧

Function definition out of place
函數定義位置錯誤

Function should return a value
函數返回一個值

Goto statement missing label
goto 語句沒有標號

Hexadecimal or octal constant too large
16進制或8進制常數太大

Illegal character 'x'
非法字 x

Illegal initialization
非法的初始化

Illegal octal digit
非法的8進制數字

Illegal pointer subtraction
非法的指針相減

Illegal structure operation
非法的結構體操作

Illegal use of pointer
指針使用非法

Improper use of a typedef symbol
類型符號定義使用不恰當

In-line assembly not allowed
不允許使用行間匯編

Incompatible storage class
存儲類別不相容

Incompatible type conversion
不相容的類型轉換

Incorrect number format
錯誤的數據格式

Incorrect use of default
default使用不正確

Invalid indirection
無效的間接運算

Invalid pointer addition
指針相加無效

Irrecible expression tree
無法執行的表達式運算

Lvalur required
需要邏輯值(0或非0值)

Macro argument syntax error
宏參數語法錯誤

Macro expansion too long
宏的擴展以後太長

Mismatched number of parameters in definition
定義中參數個數不匹配

Misplaced break
此處不應出現break語句

Misplaced continue
此處不應出現continue語句

Misplaced decimal point
此處不應出現小數點

Misplaced elif directive
此處不應出現編譯預處理elif

Misplaced else
此處不應出現else

Misplaced else directive
此處不應出現編譯預處理 else

Misplaced endif directive
此處不應出現編譯預處理 endif

Must be addressable
必須是可以編址的

Must take address of memory location
必須存儲定位的地址

No declaration for function 'xxx'
沒有函數 xxx 的說明

No stack
缺少堆棧

No type information
沒有類型信息

Non-portable pointer assignment
不可移動的指針(地址常數)賦值

Non-portable pointer comparison
不可移動的指針(地址常數)比較

Non-portable pointer conversion
不可移動的指針(地址常數)轉換

Not a valid expression format type
不合法的表達式格式

Not an allowed type
不允許使用的類型

Numeric constant too large
數值常數太大

Out of memory
內存不夠用

Parameter 'xxx' is never used
參數 xxx 沒有用到

Pointer required on left side of ->
-> 符號的左邊必須是指針

Possible use of 'xxx' before definition
在定義之前就使用了 xxx(警告)

Possibly incorrect assignment
賦值可能不正確

Redefinition of 'xxx' is not identical
xxx 的兩次定義不一致

Register allocation failure
寄存器定址失敗

Repeat count needs an lvalue
重復計數需要邏輯值

Size of structure or array not known
結構體或數組的大小不確定

Statement missing ;
語句後缺少";"

Structure or union syntax error
結構體或聯合體語法錯誤

Structure size too large
結構體的尺寸太大

Subscripting missing ]
下標缺少右方括弧

Superfluous &with function or array
函數或數組中有多餘的"&"

Suspicious pointer conversion
可疑的指針轉換

Symbol limit exceeded
符號超限

Too few parameters in call
函數調用時的實參少於函數的參數

Too many error or warning messages
錯誤或警告信息太多

Too much auto memory in function
函數中用到的局部存儲太多

Too much global data defined in file
文件中全局數據太多

Too consecutive dots
兩個連續的句點

Type mismatch in parameter xxx
參數xxx類型不匹配

Type mismatch in redeclaration of 'xxx'
xxx 重定義時的類型不匹配

Unable to create output file 'xxx'
無法建立輸出文件 xxx

Unable to open include file 'xxx'
無法打開被包容的文件 xxx

Bit field too large
位欄位太長

Unable to open input file 'xxx'
無法打開輸入文件 xxx

Undefined label 'xxx'
沒有定義的標號 xxx

Undefined structure 'xxx'
沒有定義的結構 xxx

Undefined symbol 'xxx'
沒有定義的符號 xxx

Unexpected end of file in comment started on line xxx
從 xxx 行開始的註解尚未結束,文件不能結束

Unexpected end of file in conditional started on line xxx
從 xxx 行開始的條件語句尚未結束,文件不能結束

Unknown assembler instruction
未知的匯編結構

Unknown option
未知的操作

Unknown preprocessor directive: 'xxx'
不認識的預處理命令 xxx

Unreachable code
無法到達的代碼

Unterminated string or character constant
字元串缺少引號

User break
用戶強行中斷了程序

Void functions may not return a value
void 類型的函數不應有返回值

Wrong number off arguments
調用函數時參數數目錯

'xxx' not an argument
xxx 不是參數

'xxx' not part of structure
xxx 不是結構體的一部分

xxx statement missing (
xxx 語句缺少左括弧

xxx statement missing )
xxx 語句缺少右括弧

xxx statement missing ;
xxx 語句缺少分號

'xxx' declared but never used
說明了 xxx ,但沒有使用

'xxx' is assigned a value which is never used
給 xxx 賦了值,但未用過

Zero length structure
結構體的長度為零

熱點內容
我的世界搭建tcp伺服器 發布:2025-07-14 08:42:55 瀏覽:659
安卓jj比賽哪個版本有全記牌器 發布:2025-07-14 08:28:27 瀏覽:73
python腳本執行hive 發布:2025-07-14 08:26:24 瀏覽:489
媒體存儲可以刪除嗎 發布:2025-07-14 08:26:13 瀏覽:813
ios網易雲音樂上傳 發布:2025-07-14 08:16:58 瀏覽:392
榮耀8x可以用方舟編譯器嗎 發布:2025-07-14 08:09:49 瀏覽:278
雲伺服器商家怎麼購買 發布:2025-07-14 08:05:34 瀏覽:46
c語言convert函數 發布:2025-07-14 07:56:34 瀏覽:484
sql存儲過程列印 發布:2025-07-14 07:56:26 瀏覽:659
弄伺服器需要什麼語言 發布:2025-07-14 07:54:27 瀏覽:508