善良的人妻被部长侵犯,高清播放器app,亚洲天然素人无码专区,欧美护士乱婬av精品一区

首頁(yè)
關(guān)于我們
新聞資訊
聯(lián)系我們

C語(yǔ)言u(píng)ndeclared identifier是什么意思?

來(lái)源:網(wǎng)絡(luò)    發(fā)布時(shí)間:2023-03-05 查看次數(shù):665

C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。有時(shí)運(yùn)行后出現(xiàn)錯(cuò)誤提示為undeclared identifier,那么這是什么意思,遇到undeclared identifier怎么解決?

undeclared identifier

一、undeclared identifier是什么意思

undeclared identifier即未聲明的標(biāo)識(shí)符,是C語(yǔ)言中一種報(bào)錯(cuò)提示。當(dāng)編譯器找不到標(biāo)識(shí)符的聲明時(shí),就會(huì)出現(xiàn)undeclared identifier錯(cuò)誤。導(dǎo)致此錯(cuò)誤的可能原因有很多,一般是使用的變量或者函數(shù)沒有定義、變量拼寫錯(cuò)誤、聲明變量的標(biāo)頭未包含在文件中或者是定義的時(shí)候和調(diào)用的時(shí)候不一致導(dǎo)致的。

二、C語(yǔ)言標(biāo)識(shí)符是什么意思

在編程語(yǔ)言中,標(biāo)識(shí)符是用戶編程時(shí)使用的名字,變量、常量、函數(shù)、語(yǔ)句塊都有名字。是用來(lái)標(biāo)識(shí)某個(gè)實(shí)體的一個(gè)符號(hào),是對(duì)變量名、函數(shù)名、標(biāo)號(hào)和其他各種用戶定義的對(duì)象命名。

C 標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量、函數(shù),或任何其他用戶自定義項(xiàng)目的名稱。一個(gè)標(biāo)識(shí)符以字母 A-Z 或 a-z 或下劃線 _ 開始,后跟零個(gè)或多個(gè)字母、下劃線和數(shù)字(0-9)。

三、undeclared identifier錯(cuò)誤產(chǎn)生原因

undeclared identifier主要是由于在使用變量的時(shí)候發(fā)現(xiàn)沒有定義和說(shuō)明,其實(shí)就是編譯器不認(rèn)識(shí)這個(gè)標(biāo)識(shí)符。

在進(jìn)行c語(yǔ)言編程時(shí),想要調(diào)用庫(kù)函數(shù),需要把對(duì)應(yīng)的頭文件包含進(jìn)來(lái),比如sin()、cos()、等數(shù)學(xué)函數(shù),它們的頭文件是math.h,在調(diào)用sin()或者cos()函數(shù)的時(shí)候,需要在代碼前面加一句#include<math.h>。

四、如何修復(fù) C++ 中的“使用未聲明的標(biāo)識(shí)符”編譯錯(cuò)誤

1、變量未聲明

當(dāng)使用變量而不聲明時(shí),就會(huì)出現(xiàn)undeclared identifier錯(cuò)誤,解決方法是在使用它之前聲明變量,例如:

C++
#include<iostream> using namespace std; int main(){ x=x+1; cout<<x; return 0; } //這段代碼會(huì)給我們錯(cuò)誤 //解決這個(gè)問題: #include<iostream> using namespace std; int main(){ int x=0; //使用x前先聲明 x=x+1; cout<<x; return 0; }


2、拼寫錯(cuò)誤的變量名

有時(shí)在編寫代碼時(shí)我們可能會(huì)拼錯(cuò)變量名,這是一種常見的錯(cuò)誤類型。要解決此問題,只需檢查你使用的變量的每個(gè)實(shí)例并確保其拼寫正確。例如:

C++
#include<iostream>  using namespace std; int main(){ int abx=0; abx=abs+1; //abx 拼寫錯(cuò)誤 cout<<abx; return 0; } //這段代碼會(huì)給我們錯(cuò)誤  //解決這個(gè)問題: /#include<iostream> using namespace std; int main(){ int abx=0; abx=abx+1; cout<<abx; return 0; }


3、超出范圍變量

如果我們嘗試使用超出其范圍的變量,那么也會(huì)發(fā)生undeclared identifier錯(cuò)誤,因?yàn)樵撟兞咳晕绰暶鞒銎浞秶?。為避免這種情況,請(qǐng)確保你僅在其范圍內(nèi)使用變量。例如:

C++
#include<iostream>  using namespace std; int main(){ int abx=0; for(int i=0;i<5;i++){ abx++; //i 只在這個(gè)范圍內(nèi)聲明 } cout<<abx*i; //這里沒有為外部函數(shù)聲明i return 0; } //這段代碼會(huì)給我們錯(cuò)誤  //解決這個(gè)問題: #include<iostream>  using namespace std; int main(){ int abx=0,i=0; //i 是為 main 函數(shù)聲明的 for(i;i<5;i++){ abx++; } cout<<abx*i; //沒有錯(cuò)誤  return 0; }


4、沒有包含庫(kù)

如果我們嘗試使用諸如 vector 之類的數(shù)據(jù)類型而不包含其庫(kù),我們將收到此錯(cuò)誤。要解決此問題,請(qǐng)確保僅在包含其庫(kù)后才使用標(biāo)識(shí)符。例如,在這里使用 vector 而不包括它的庫(kù)。這給出了一個(gè)錯(cuò)誤。要解決它,只需事先包含所需的庫(kù)。

C++
#include<iostream>  using namespace std; int main(){ vector<int> abx; //abx 未聲明 for(int i=0;i<5;i++){ abx.push_back(i); } cout<<abx[2]; return 0; } //這段代碼會(huì)給我們錯(cuò)誤  //解決這個(gè)問題: #include<iostream>  #include<vector> using namespace std; int main(){ vector<int> abx; //abx 被聲明  for(int i=0;i<5;i++){ abx.push_back(i); } cout<<abx[2]; return 0; }


五、C語(yǔ)言標(biāo)識(shí)符的命名規(guī)范

1、標(biāo)識(shí)符由字母、數(shù)字、下劃線組成,并且首字母不能是數(shù)字。(C 標(biāo)識(shí)符內(nèi)不允許出現(xiàn)標(biāo)點(diǎn)字符,比如 @、$ 和 %。)

2、標(biāo)識(shí)符對(duì)大小寫敏感,即嚴(yán)格區(qū)分大小寫。一般對(duì)變量名用小寫,符號(hào)常量命名用大寫。(注:C語(yǔ)言中字母是區(qū)分大小寫的,因此score、Score、SCORE分別代表三個(gè)不同的標(biāo)識(shí)符)

3、不能把C的關(guān)鍵字作為用戶的標(biāo)識(shí)符,例如:if、for、while等。(注:標(biāo)識(shí)符不能和C語(yǔ)言的關(guān)鍵字相同,也不能和用戶自定義的函數(shù)或C語(yǔ)言庫(kù)函數(shù)同名。For是可以的,因?yàn)閰^(qū)分大小寫。)

4、標(biāo)識(shí)符長(zhǎng)度是由機(jī)器上的編譯系統(tǒng)決定的,一般的限制為8字符。(注:8字符長(zhǎng)度限制是C89標(biāo)準(zhǔn),C99標(biāo)準(zhǔn)已經(jīng)擴(kuò)充長(zhǎng)度,其實(shí)大部分工業(yè)標(biāo)準(zhǔn)都更長(zhǎng))

5、標(biāo)識(shí)符命名應(yīng)做到"見名知意",例如,長(zhǎng)度(外語(yǔ):length),求和、總計(jì)(外語(yǔ):sum),圓周率(外語(yǔ):pi)。


【聲明:信息來(lái)自網(wǎng)絡(luò),如有侵權(quán),聯(lián)系既刪。】