3.17 キャスト
キャストはデータそのものを変換することなく型だけを変更する機能である。例えば、整数には 8 ビット (char) から 64 ビット (long int) まであるが、キャストにより型を char から long int にすることができる。 また -127 から 127 の範囲なら long int (int64_t) を char (int8_t) 型にすることもできる。
整数には符号あり整数 (例えば int) と符号なし整数 (unsigned int) があるが、これらも範囲に制限があるがキャストにより型の変更が可能である。
キャストの使用例を下に示す。
#include <stdio.h>
/* cast.c */
void main() {
int n = (int)'A'; // 文字から整数へのキャスト
char c = (char)0x61; // 整数から文字へのキャスト
printf("n=%d, c='%c'\n", n, c);
unsigned int nl = 1000L;
n = (int)nl; // 長整数から整数へのキャスト
printf("n=%d\n", n);
}
実行例
$ ./bin/cast n=65, c='a' n=1000 $