4.5シンボル定数とプリプロセッサ#define


シンボル定数は便利です。

#define PI 3.141592fと宣言されている場合は、あまり数字を入力しなくてもPIを使用できます.修飾そのものに取って代わる場合もあります.
ここではPIを符号定数と呼ぶ.
しかし、コンパイラの立場で書くか書かないかは同じです.
  • 注意事項!
    #define PI=3.141592 fと書くと「=3.141592 f」と認識されます.
    大文字で書くことが多いです.
  • #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #define PI 3.141592f
    #define AI_NAME "Jarvis" // Jarvis를 바꾸고 싶을 때 일일이 찾아다니지 않고 위에만 변경해주면 된다.
    
    int main()
    {
    	float radius, area, circum;
    
    	printf("I'm %s.\n", AI_NAME); 
    	printf("Please, Input radius.\n");
    
    	scanf("%f", &radius);
    
    	area = PI * radius * radius; // area = pi*r^2
    	circum = 2.0f * PI * radius; //circum = 2.0 * pi * r
    
    	printf("Area is %f\n", area);
    	printf("Circumference is %f\n", circum);
    
    
    	// TODO : wrong usage, strings, const
    
    	return 0;
    }
    もちろん、floatの使用はfloat pi = 3.141592f;と称することができる.しかし、これらのシンボル定数が符号化中に別の数になると、これは非常に困難な符号化になる.
    そのため、最近はconst float pi = 3.141592fの形でよく使われています.
    contが貼り付けられている場合、後でpi = 1.0f;のように変更しようとしてもコンパイルできません.