官术网_书友最值得收藏!

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變量的區別。

主站蜘蛛池模板: 尚志市| 泸水县| 独山县| 泗水县| 丹阳市| 新民市| 芦溪县| 梁河县| 来安县| 临江市| 遵化市| 西畴县| 德昌县| 宁化县| 安阳市| 晋城| 嘉义县| 吴忠市| 旌德县| 玉屏| 金门县| 罗平县| 瑞安市| 项城市| 汤原县| 皋兰县| 宜川县| 古交市| 礼泉县| 阿合奇县| 华蓥市| 肃宁县| 淳化县| 三台县| 布尔津县| 达尔| 静乐县| 横峰县| 六安市| 荣昌县| 哈密市|