導航:首頁 > 源碼編譯 > 編譯器識別字元是關鍵字還是變數

編譯器識別字元是關鍵字還是變數

發布時間:2023-01-09 20:53:58

1. 程序語言編譯器是怎樣被計算機識別的

源代碼是由字元組成的吧?
明白這一點就好辦了
編譯器首先將你寫的代碼讀入內存,然後尋找代碼中的關鍵字、標識符等信息,建立一個所謂的符號表,根據這個符號表對你的源代碼進行檢查,檢查的依據正是該語言的語法和句法規則。比如是否有變數重復定義錯誤、是否有類型不兼容錯誤,是否有遺漏語句分隔符錯誤等等。這些都是比較簡單的,例如根據語言的關鍵字表可以檢查是否有非法的關鍵字(語句分隔符之後的下一個有效字元一定是一個關鍵字或已定義的標識符,因此很容易識別並挑出其中的關鍵字進行檢查),其它檢查也是類似的。
檢查沒有問題後,編譯器開始鏈接和映射操作(該過程在檢查階段也有使用),將你的源程序翻譯成匯編程序或其它中間程序。這一步是最復雜的,因為句法和語法比較簡單,但整個程序的邏輯卻復雜的多,而且編譯器還要負責在不改變代碼原意的前提下將代碼盡可能地進行優化。
最後就是將生成的匯編代碼翻譯為機器語言,這一步是最簡單的,因為匯編只是將機器語言簡單符號化而已,現在的編譯理論已經能夠確保將匯編代碼准確地翻譯為機器碼了。
以上。

2. C語言的關鍵字是什麼,為什麼叫關鍵字,怎麼來的

1.關鍵字就是C語言編譯器識別專用的字元串。
2.因為這些是C里規定死並且比較重要的字元串(key words)所以叫關鍵字的,好像你名字一樣。
3.開發C語言的人定下來的。

補充一下,下次千萬別問這種問題啊,就好像你問別人為什麼要叫李四一樣。

3. 簡述C語言中標識符和關鍵字的概念與區別

標識符是在程序中使用的變數名、函數名、標號等統稱為標識符。除庫函數的函數名由系統定義外,其餘都由用戶自定義。C 規定,標識符只能是字母(A~Z,a~z)、數字(0~9)、下劃線()組成的字元串,並且其第一個字元必須是字母或下劃線。

在使用標識符時還必須注意以下幾點:

(1)標准C不限制標識符的長度,但它受各種版本的C 語言編譯系統限制,同時也受到具體機器的限制。例如在某版本C 中規定標識符前八位有效,當兩個標識符前八位相同時,則被認為是同一個標識符。

(2)在標識符中,大小寫是有區別的。例如BOOK和book 是兩個不同的標識符。

(3)標識符雖然可由程序員隨意定義,但標識符是用於標識某個量的符號。因此,命名應盡量有相應的意義,以便閱讀理解,作到「顧名思義」。

關鍵字你看一看這一個

4. 操作系統和編譯器是怎麼識別全局變數和局部

5. C語言關鍵字是什麼

所謂關鍵字就是已被 C語言編輯工具本身使用, 不能作其它用途使用的字。
auto :聲明自動變數 一般不使用
double :聲明雙精度變數或函數
int: 聲明整型變數或函數
struct:聲明結構體變數或函數
break:跳出當前循環
else :條件語句否定分支(與 if 連用)
long :聲明長整型變數或函數
switch :用於開關語句
case:開關語句分支
enum :聲明枚舉類型
register:聲明積存器變數
typedef:用以給數據類型取別名(當然還有其他作用)
char :聲明字元型變數或函數
extern:聲明變數是在其他文件正聲明(也可以看做是引用變數)
return :子程序返回語句(可以帶參數,也看不帶參數)
union:聲明聯合數據類型
const :聲明只讀變數
float:聲明浮點型變數或函數
short :聲明短整型變數或函數
unsigned:聲明無符號類型變數或函數
continue:結束當前循環,開始下一輪循環
for:一種循環語句(可意會不可言傳)
signed:生命有符號類型變數或函數
void :聲明函數無返回值或無參數,聲明無類型指針(基本上就這三個作用)
default:開關語句中的「其他」分支
goto:無條件跳轉語句
sizeof:計算數據類型長度
volatile:說明變數在程序執行中可被隱含地改變
do :循環語句的循環體
while :循環語句的循環條件
static :聲明靜態變數
if:條件語句

6. 編譯器怎麼區分標識符和字元

首先要清楚標識符和字元的定義
標識符是程序員自己規定的具有特定含義的單詞,比如類名稱,屬性名稱,變數名等。
舉例子就是
class
string
字元是指計算機中使用的字母、數字、字和符號
舉例子就是
1,2,3,abc
然後要強調,編譯器是無法區分標識符和字元的,只有人事先為其規定好規則的情況下,編譯器才會按照標識符的方式去讀取。打個比方,我規定了class為類標識符,那當我程序里
出現了class
test時,編譯器就會認為test是類而不是字元。不知道能不能理解,不過是個好問題

7. 1.C編譯程序如何准確識別整型short、int、long和實型float、double、long

編譯器根據 short int 這些類型說明符來識別變數是什麼,你寫的關鍵字就是讓編譯器識別數據類型用的。。。准確識別識別是因為變數聲明的原因,也是為什麼C必須進行變數類型聲明。。。
如果呢是只自己如何快速識別變數類型,有一個很特別的命名規則,可以讓你一眼看出類型,

比如int型 你可以用 int iNumber; 這樣的命名方法,在前面+i來方便你認為他是個整型,不過很多編輯器在你輸入變數後滑鼠懸停會有類型提示,有點多此一舉。。。
你問的問題我沒有搞清楚你要問什麼,描述不是很清楚。。。

8. 關鍵字和一般標識符的區別

一、主體不同

1、關鍵字:屬於保留字,是整個語言范圍內預先保留的標識符。

2、一般標識符:用戶編程時使用的名字,用於給變數、常量、函數、語句塊等命名,以建立起名稱與使用之間的關系。

二、特點不同

1、關鍵字:不能聲明與關鍵字同名的標識符。

2、一般標識符:由字母和數字以及其它字元構成。


三、規則不同

1、關鍵字:經過預處理後,關鍵字從預處理記號(preprocessing-token)中區別出來,剩下的標識符作為記號(token),用於聲明對象、函數、類型、命名空間等。

2、一般標識符:長度是由機器上的編譯系統決定的,一般的限制為8字元。


9. 請問C語言中的字元哪些可以做為變數,哪些不可以做為變數

1,變數名必須由字母、數字、下劃線組成2,首字元不能是數字3,不能太長,具體長度限制由編譯器設定,太長會被編譯器截取前面的,如果定義的兩個變數,在編譯器可識別的范圍相同,而後面的不同,編譯器將視為同一個變數。4,不能是C的保留字,如if,for,main,break不能作為變數名
閱讀全文

與編譯器識別字元是關鍵字還是變數相關的資料

熱點內容
千鋒python人工智慧培訓 瀏覽:855
合理的文件夾劃分 瀏覽:258
十點讀書app哪裡下載 瀏覽:964
uu跑腿押金上app在哪裡解約 瀏覽:37
華為如何將app移到桌面 瀏覽:597
阿里安卓面試演算法題 瀏覽:705
語文知識手冊pdf 瀏覽:841
為什麼安卓手機oled屏很白很亮 瀏覽:252
如何找回iphone手機隱藏的app 瀏覽:21
linuxc多進程 瀏覽:649
android飛行游戲 瀏覽:965
數據挖掘常見演算法 瀏覽:135
python單實例化 瀏覽:351
str中python 瀏覽:89
java的equals用法 瀏覽:845
奧維雲伺服器怎麼開通 瀏覽:171
js取得伺服器地址 瀏覽:812
起點中文網小說緩存在哪個文件夾 瀏覽:216
java瘋狂講義pdf 瀏覽:300
推有錢app在哪裡 瀏覽:745