1. 程式人生 > >C語言------巨集常量和巨集替換

C語言------巨集常量和巨集替換

首先我們先看一個例項:

    程式設計計算並輸出半徑R = 5.3的圓的周長和麵積

#include <stdio.h>
main()
{
    doule r = 5.3;
    printf("circumference = %f\n",2*3.14159*r);
    printf("area = %f\n",3.14159*r*r);
 }

分析發現這個程式只能計算半徑是5.3的圓的面積和周長,如果改變半徑的值,則需要修改程式,重新編譯程式,要想做到一次編譯,多次執行計算半徑的圓的周長和麵積,希望每次執行時可以讓使用者從鍵盤輸入圓的半徑r的值,這就要用到C標準函式庫的函式scanf( ):

#include <stdio.h>
main()
{
    doule r;
    printf("Input r:");
    scanf("%lf",&r);/*%lf指定輸入是雙精度實型。*/
    printf("circumference = %f\n",2*3.14159*r);
    printf("area = %f\n",3.14159*r*r);
 }

同printf( )函式一樣,scanf( )也是C的標準輸入/輸出函式。

&:是取地址運算子     &指定了使用者輸入資料存放變數的地址。

經過仔細觀察我們還發現,圓的周長和麵積的計算公式中用到的圓周率也是用一個近似值表示的,像這種在程式中直接使用的常數叫做幻數。

使用幻術會給我們帶來很多麻煩:

可讀性變差、程式多個地方使用幻數,易出錯、修改工作量巨大、

為了避免上面的問題,我們把幻數定義為巨集常量或者const常量,代替程式中出現的常數。優點在於能是使用者用一個簡單的名字代替較長的字串。

#define PI 3.14159    /*定義巨集常量PI*/

巨集常量也稱為符號常量,是指用一個識別符號號來標識常量   切記中間不能加等號