サイトマップ / C言語講座出入り口総目次目次:入出力(1)>記号定数と変数の型宣言

青い直線

記号定数と変数の型宣言

青い直線

[代入演算子+=と*=]←このソース→[列挙定数]

/* #define はプリプロセッサにより解釈され、typedefはコンパイラにより解釈されます。typedefで宣言される自家製の型名は一般に大文字を使用することになっています。

記号定数

    #define PI 3.1415926535897932386

上記のコードはプリプロセッサにより解釈され、この行以降に”PI”があらわれたら、”3.1415926535897932386”に書き換えられます。ソースプログラムの中に、円周率などの特定の数字が複数回使われる時に、もし、後から訂正する必要がでてきた場合、全ての箇所を訂正しなければなりません。特に、ソースプログラムを作成してから時間がたっていたり、作成した人と訂正する人が別人の場合、訂正は困難になります。それを避けるため、ソースプログラムの前の方で、記号定数を宣言しておけば、訂正は1ヶ所ですみます。このことを、プログラムの保守性が良くなるといいます。

西暦2000年問題の際、時間に関する文字定数に、ソースプログラム作成者がその恋人のイニシャルを使っていたケースがあり、訂正する人が苦労したという例があります。文字定数には、容易にそれが何であるかが連想できる記号を使うべきです。

typedefで宣言される新しい型名

下記に示すのはstdio.hで定義されている新しい型名の例です。unsigned long型と同じです。全く新しい型ができるわけではなく、いわば”別名”ができるのですが、扱っている変数の意味を明確にするという効果があります。

    typedef unsigned size_t;

下記はtime.hで定義されている新しい型名の例です。こちらはlong型と同じです。clock( )はコンピュータの電源を入れてからの経過時間を取得する標準ライブラリ関数です。時間に関する関数で詳しく扱います。

    typedef long clock_t;
    clock_t clock(void);

ソースプログラムの説明

typedef unsigned int FUNNY;

上記のコードで、typedefを使って新しい型”FUNNY”を宣言しています。10進数64206は16進数(%X)では幾つでしょうか。 */

/* ここからソースプログラム */

#include  <stdio.h>

typedef unsigned int FUNNY;

void  main(void);

void main(void)
{
    FUNNY face = 64206;

    printf( "FUNNY %X\n", face);

}

/* ここまでソースプログラム */

[代入演算子+=と*=]←このソース→[列挙定数]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:入出力(1)>記号定数と変数の型宣言