接尾子
定数の型
これまでは何気に定数を使ってきました
定数とは、プログラムで変化することのない一定の値のことを指します
つまり、a = 100; の 100という数は定数 です
変数に定数を代入するときは、これまで型に注意を払ってきました
文字定数や数値定数、浮動小数点定数などですね
これらを変数に代入するときには、変数の型を定数の型に合わせる必要がありました
10などの数を扱う時、特に明示的にその定数の型を示す必要はありませんでした
これは、コンパイラがデフォルトでint型であると判断するためです
しかし、デフォルト以外の定数型として扱いたい場合などがあります
また、printf()関数などの関数の引数として定数を渡す時にも、定数の型は重要です
そこでその定数がどのような型であるかを明示的に表す接尾子というものがあります
接尾子は数値定数の型を指定するもので、数の末尾につけます
整数では
unsigned = U
long = L
その数が浮動小数点の場合
float = F
long double = L
となってます
接尾子は大文字ではなく、小文字で指定することも可能です
#include <stdio.h>
int main()
{
printf("%ld\n", 500L);
printf("%Lg" , 123.456L);
return 0;
}
16進数と8進数
C言語では、数値定数は10進数以外に16進数と8進数を表現することができます
これらはプログラミングにおいては10進数を使うより便利な場合があります
16進数の場合は数値の前に 0x をつけます
8進数の場合は数値の前に 0 をつけます
16進数の場合、A〜Fは大文字、小文字の両方を使うことができます
#include <stdio.h>
int main()
{
printf("%x\n",0xff + 0x1);
printf("%i",07);
return 0;
}