- 零基礎學單片機C語言程序設計
- 趙建領 薛園園等編著
- 1032字
- 2018-12-31 21:41:35
3.7 分隔符與const修飾符
分隔符和修飾符是計算機語言中很重要的組成部分,下面分別介紹C51的分隔符和const修飾符。
3.7.1 C51分隔符
分隔符在C51程序語言中起輔助標識和分界的作用,如+、-、*、/、!、|、<、>、=、.、,、:、;、'、#等。這些簡單分隔符是由除字母、數字、下畫線以外的單個ASCII字符組成的符號。除此以外,C51中還有復合分隔符,例如<=、!=、>=、{、}、[、]、(、)等。復合分隔符是特定字符的某種組合。
C51的分隔符常用于數組、結構、指針以及語句等情況,下面舉出常用的分隔符示例。
?“;”分隔符:主要用于語句的末尾,起到隔離語句的作用,例如例如int r;。
?“[ ]”分隔符:主要用于對數組說明,例如char ch[ ]=''Hello Everyone!''。
?“( )”分隔符:主要用于進行隔離,例如s=area(r)。
?“,”分隔符:主要用于進行隔離,例如char ch1,ch2。
?“{}”分隔符:主要用于進行復合語句的隔離,例如for {i=0;i<10;i++}。
?“*”分隔符:主要用于做指針,例如char *p1。
?“#”分隔符:主要用于做預處理偽指令,例如#define PI 3.14159。
?“^”分隔符:主要用于標識特殊寄存器的位,例如sbit P10=P1^0。
3.7.2 const修飾符
在C51語言中,用關鍵字const修飾的是一類特殊的常量,一般稱為符號常量或const變量。const修飾符主要用來定義常量或變量。其定義格式為“const <類型說明符> <常量名> =<常量值>;”,示例如下。
const double PI=3.14159; //定義浮點型的const變量
基本數據類型的變量一旦加上const修飾符,程序在編譯時,將其視為一個常量,而不再為其分配內存。當在程序中遇到該const變量時,將用其定義時的初值來代替,不能在程序中修改const修飾的變量的值。所以在聲明const變量時,必須對其進行初始化賦值,除非該變量是用extern修飾的全局變量。
在C51程序中使用const變量,具有如下幾點好處。
?可以防止程序運行時該值被意外修改。
?可以方便對于程序中經常使用的值進行統一修改,便于調試程序。
const變量的程序示例如下。
#include <stdio.h> //頭文件 const double PI=3.14159; //定義圓周率為const變量 void main() //主函數 { int r; //定義半徑 double area,length; //定義圓面積和周長 r=2; //半徑賦值 area=r*r*PI; //計算面積 length=2*PI*r; //計算周長 printf("If r=%d,the area=%lf,length=%lf\n",r,area,length); //輸出結果 }
這段程序可在Keil μ Vision3集成開發環境中運行,執行結果如下。
If r=2,the area=12.566360,length=12.566360
該程序中,將圓周率PI定義為double型的const變量。主程序編譯和執行時,如果遇到該變量則自動以double型的值3.14159來代替。
在C51語言中,宏定義和const變量有些類似。宏定義在程序預處理時只對上下文進行簡單的文本代替,并不進行具體的語法檢查,示例如下。
#define ch 12;
對于上面的宏定義語句,C51程序在編譯時,如果遇到字符串ch,則將其全部替換為字符串12。至于ch的數據類型則沒有指明,因此在使用時會出現一些問題,例如不知道該變量是整型數據還是浮點型數據,這就很容易引起混亂。如果使用const變量來定義這個常量,可以進行如下定義。
const int ch=12; //定義ch為整型const變量 const double ch=12; //定義ch為浮點型const變量
這樣,在定義時便指明了其數據類型。因此,在這種情況下使用const變量要比宏定義簡潔清楚。使用const變量可以完全代替無參數的宏。
說明
宏定義在后面的章節中會具體介紹,這里僅指出了其和const變量的區別。
- 微服務設計(第2版)
- INSTANT FreeMarker Starter
- 精通軟件性能測試與LoadRunner實戰(第2版)
- 機器人Python青少年編程開發實例
- Java持續交付
- Getting Started with SQL Server 2012 Cube Development
- Python編程與幾何圖形
- Python Data Analysis Cookbook
- JavaScript程序設計:基礎·PHP·XML
- Xcode 6 Essentials
- Arduino Wearable Projects
- 程序員的成長課
- jQuery從入門到精通(微課精編版)
- Java Web動態網站開發(第2版·微課版)
- JavaScript Mobile Application Development