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

3.7 分隔符與const修飾符

分隔符和修飾符是計算機語言中很重要的組成部分,下面分別介紹C51的分隔符和const修飾符。

3.7.1 C51分隔符

分隔符在C51程序語言中起輔助標識和分界的作用,如+、-、*、/、!、|、<、>、=、.、,、:、;、'、#等。這些簡單分隔符是由除字母、數(shù)字、下畫線以外的單個ASCII字符組成的符號。除此以外,C51中還有復(fù)合分隔符,例如<=、!=、>=、{、}、[、]、(、)等。復(fù)合分隔符是特定字符的某種組合。

C51的分隔符常用于數(shù)組、結(jié)構(gòu)、指針以及語句等情況,下面舉出常用的分隔符示例。

?“;”分隔符:主要用于語句的末尾,起到隔離語句的作用,例如例如int r;。

?“[ ]”分隔符:主要用于對數(shù)組說明,例如char ch[ ]=''Hello Everyone!''。

?“( )”分隔符:主要用于進行隔離,例如s=area(r)。

?“,”分隔符:主要用于進行隔離,例如char ch1,ch2。

?“{}”分隔符:主要用于進行復(fù)合語句的隔離,例如for {i=0;i<10;i++}。

?“*”分隔符:主要用于做指針,例如char *p1。

?“#”分隔符:主要用于做預(yù)處理偽指令,例如#define PI 3.14159。

?“^”分隔符:主要用于標識特殊寄存器的位,例如sbit P10=P1^0。

3.7.2 const修飾符

在C51語言中,用關(guān)鍵字const修飾的是一類特殊的常量,一般稱為符號常量或const變量。const修飾符主要用來定義常量或變量。其定義格式為“const <類型說明符> <常量名> =<常量值>;”,示例如下。

        const double PI=3.14159;                           //定義浮點型的const變量

基本數(shù)據(jù)類型的變量一旦加上const修飾符,程序在編譯時,將其視為一個常量,而不再為其分配內(nèi)存。當在程序中遇到該const變量時,將用其定義時的初值來代替,不能在程序中修改const修飾的變量的值。所以在聲明const變量時,必須對其進行初始化賦值,除非該變量是用extern修飾的全局變量。

在C51程序中使用const變量,具有如下幾點好處。

?可以防止程序運行時該值被意外修改。

?可以方便對于程序中經(jīng)常使用的值進行統(tǒng)一修改,便于調(diào)試程序。

const變量的程序示例如下。

        #include <stdio.h>                                                    //頭文件

        const double PI=3.14159;                                              //定義圓周率為const變量

        void main()                                                           //主函數(shù)
        {
              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);      //輸出結(jié)果
        }

這段程序可在Keil μ Vision3集成開發(fā)環(huán)境中運行,執(zhí)行結(jié)果如下。

        If r=2,the area=12.566360,length=12.566360

該程序中,將圓周率PI定義為double型的const變量。主程序編譯和執(zhí)行時,如果遇到該變量則自動以double型的值3.14159來代替。

在C51語言中,宏定義和const變量有些類似。宏定義在程序預(yù)處理時只對上下文進行簡單的文本代替,并不進行具體的語法檢查,示例如下。

        #define ch 12;

對于上面的宏定義語句,C51程序在編譯時,如果遇到字符串ch,則將其全部替換為字符串12。至于ch的數(shù)據(jù)類型則沒有指明,因此在使用時會出現(xiàn)一些問題,例如不知道該變量是整型數(shù)據(jù)還是浮點型數(shù)據(jù),這就很容易引起混亂。如果使用const變量來定義這個常量,可以進行如下定義。

        const int          ch=12;                                     //定義ch為整型const變量
        const double       ch=12;                                     //定義ch為浮點型const變量

這樣,在定義時便指明了其數(shù)據(jù)類型。因此,在這種情況下使用const變量要比宏定義簡潔清楚。使用const變量可以完全代替無參數(shù)的宏。

說明

宏定義在后面的章節(jié)中會具體介紹,這里僅指出了其和const變量的區(qū)別。

主站蜘蛛池模板: 道真| 宣恩县| 宝清县| 游戏| 马龙县| 新宾| 龙南县| 沿河| 东宁县| 福清市| 寿光市| 荣昌县| 丹江口市| 榆林市| 葫芦岛市| 屏南县| 宜良县| 石泉县| 青铜峡市| 珠海市| 金山区| 林西县| 昌江| 东山县| 烟台市| 伊川县| 敦化市| 弋阳县| 封丘县| 滕州市| 郧西县| 吉安县| 溧阳市| 冀州市| 吉木乃县| 南岸区| 遂昌县| 屯留县| 清河县| 沙坪坝区| 新丰县|