當前位置:首頁 » 編程軟體 » C編譯器怎樣對標識符進行解析

C編譯器怎樣對標識符進行解析

發布時間: 2022-08-10 20:42:57

c語言中各個標識符所表示的意思

C語言中的標識符
1) 標識符由字母、數字、下劃線「_」組成,並且首字母不能是數字.
2) 不能把C語言關鍵字作為標識符.
3) 標識符長度限制8字元.
(註:8字元長度限制是C89標准,C99標准已經擴充長度,其實大部分工業標准都更長)。
4) 標識符對大小寫敏感.
5)標識符命名應做到「見名知意」
下面的標識符名是合法的:
year,Day,ATOK,x1,_ CWS,_change_to
而下面的標識符名是不合法的:
#123,.COM,$100,1996Y,1_2_3,Win3.2

如果你問的是關鍵字的話,參考下面的內容:

auto :聲明自動變數
short :聲明短整型變數或函數
int: 聲明整型變數或函數 long :聲明長整型變數或函數
float:聲明浮點型變數或函數
double :聲明雙精度變數或函數
char :聲明字元型變數或函數
struct:聲明結構體變數或函數
union:聲明共用數據類型
enum :聲明枚舉類型
typedef:用以給數據類型取別名
const :聲明只讀變數
unsigned:聲明無符號類型變數或函數
signed:聲明有符號類型變數或函數
extern:聲明變數是在其他文件正聲明
register:聲明寄存器變數
static :聲明靜態變數
volatile:說明變數在程序執行中可被隱含地改變
void :聲明函數無返回值或無參數,聲明無類型指針
if:條件語句
else :條件語句否定分支(與 if 連用)
switch :用於開關語句
case:開關語句分支
for:一種循環語句
do :循環語句的循環體
while :循環語句的循環條件
goto:無條件跳轉語句
continue:結束當前循環,開始下一輪循環
break:跳出當前循環
default:開關語句中的「其他」分支
sizeof:計算數據類型長度
return :子程序返回語句(可以帶參數,也可不帶參數)循環條件

Ⅱ C++ 編譯器怎樣對標識符進行解析

它是一個字元一個字元地讀入,之後在讀到認為不再是標識符時,再判斷前面讀進來的所有字元組成的字元串是不是標識符

Ⅲ 如何用C語言編寫識別標識符程序

這里有圖有步驟有代碼。 http://www.docin.com/p-207935186.html

Ⅳ 問一下各位,c語言編譯器是如何處理變數名的呢

編譯器編譯到int a;時就在內存中開辟一個兩位元組的內存空間,並且命名為a

Ⅳ c語言中怎樣定義標識符pow

方法如下:

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,輸入C語言代碼:

double a = 1000, n = 10, p = 0.001;

printf("%lf", a * pow(1+p, n) - a);

3、編譯器運行test.cpp文件,此時成功列出公式並計算出了利息結果。

Ⅵ C語言的按照標識符、關鍵字、常用編譯指令有哪些

我們可以在C源程序中插入傳給編譯程序的各中指令,這些指令被稱為預處理器指令,它們擴充了程序設計的環境。現把常用的預處理命令總結如下:
1. 預處理程序
按照ANSI標準的定義,預處理程序應該處理以下指令:
#if #ifdef #ifndef #else #elif
#endif
#define
#undef
#line
#error
#pragma
#include
顯然,上述所有的12個預處理指令都以符號#開始,,每條預處理指令必須獨佔一行。
2. #define
#define指令定義一個標識符和一個串(也就是字元集),在源程序中發現該標識符時,都用該串替換之。這種標識符稱為宏名字,相應的替換稱為宏代換。一般形式如下:
#define macro-name char-sequence
這種語句不用分號結尾。宏名字和串之間可以有多個空白符,但串開始後只能以新行終止。
例如:我們使用LEFT代表1,用RIGHT代表0,我們使用兩個#define指令:
#define LEFT 1
#define RIGHT 0
每當在源程序中遇到LEFT或RIGHT時,編譯程序都用1或0替換。
定義一個宏名字之後,可以在其他宏定義中使用,例如:
#define ONE 1
#define TWO ONE+ONE
#define THREE ONE+TWO
宏代換就是用相關的串替代標識符。因此,如果希望定義一條標准錯誤信息時,可以如下定義:
#define ERROR_MS 「Standard error on input \n」
如果一個串長於一行,可在行尾用反斜線」\」續行,如下:
#define LONG_STRING 「This is a very very long \
String that is used as an example」
3. #error
#error指令強制編譯程序停止編譯,它主要用於程序調試。#error指令的一般形式是:
#error error-message
注意,宏串error-message不用雙引號包圍。遇到#error指令時,錯誤信息被顯示,可能同時還顯示編譯程序作者預先定義的其他內容。
4. #include
程序中的#include指令要求編譯程序讀入另一個源文件。被讀入文件的名字必須用雙引號(「」)或一對尖括弧(<>)包圍,例如:
#include 「stdio.h」
#include <stdio.h>
都使C編譯程序讀入並編譯頭文件以用於I/O系統庫函數。
包含文件中可以包含其他#include指令,稱為嵌套包含。允許的最大嵌套深度隨編譯器而變。
文件名被雙括弧或尖括弧包圍決定了對指定文件的搜索方式。文件名被尖括弧包圍時,搜索按編譯程序作者的定義進行,一般用於搜索某些專門放置包含文件的特殊目錄。當文件名被雙括弧包圍時,搜索按編譯程序實時的規定進行,一般搜索當前目錄。如未發現,再按尖括弧包圍時的辦法重新搜索一次。
通常,絕大多數程序員使用尖括弧包圍標準的頭文件,雙引號用於包圍與當前程序相關的文件名。
5. 條件編譯指令
若干編譯指令允許程序員有選擇的編譯程序源代碼的不同部分,這種過程稱為條件編譯。
5.1#if、#else、#elif #endif
條件編譯指令中最常用的或許是#if,#else,#elif和#endif。這些指令允許程序員根據常數表達式的結果有條件的包圍部分代碼。
#if的一般形式是:
#if constant-expression
Statement sequence
#endif
如#if後的常數表達式為真,則#if和#endif中間的代碼被編譯,否則忽略該代碼段。#endif標記#if塊的結束。
#else指令的作用與C語言的else相似,#if指令失敗時它可以作為備選指令。例如:
#include <stdio.h>
#define MAX 100
Int main(void)
{
#if MAX>99
printf(「Compiled for array greater than 99.\n」);
#else
printf(「Complied for small array.\n」);
#endif
return 0;
}

Ⅶ 求C語言標識符詳解

下劃線,字母,數字
不能以數字開頭
自定義的不能和保留字相同

就這三條,還有就是編譯器對標識符有長度限制

熱點內容
squid強制緩存 發布:2022-10-05 12:38:26 瀏覽:522
雲計算的計算機需要什麼配置 發布:2022-10-05 12:36:04 瀏覽:70
時長版怎麼用腳本自動掛機 發布:2022-10-05 12:34:31 瀏覽:394
安卓手機通訊錄如何轉word 發布:2022-10-05 12:29:38 瀏覽:168
域在資料庫 發布:2022-10-05 12:28:39 瀏覽:125
sqlinarray 發布:2022-10-05 12:28:25 瀏覽:902
linux下的svn 發布:2022-10-05 12:24:27 瀏覽:13
安卓怎麼刷蘋果系統 發布:2022-10-05 12:24:24 瀏覽:945
安卓手機微信如何清理存儲 發布:2022-10-05 12:23:45 瀏覽:771
c語言史話 發布:2022-10-05 12:22:49 瀏覽:762