C言語の型キャストについてのまとめ

C言語の型キャストについて勉強したので、まとめ。ちなみに、型キャストは型変換とも呼ばれている。

計算における型キャスト

C言語において異なる型同士で計算を行った場合、より精度の高い型に合わせて計算が行われるようになっている。

例えば、float + int の計算であれば計算結果はfloat型になるし、 double + floatであればdouble型になる。

#include <stdio.h>
void main() {
int i = 2;
float f = 3.0;
printf("%f", f / i);  /*  1.500000 と表示  */
}

参考記事:型変換

ただし、int型同士で計算して最終的な結果はfloatにしたいという場合がある。その時は、*明示的に型キャストをしてあげる**ことで解決できる。

#include <stdio.h>
void main() {
int i = 3;
int i2 = 2;
printf("%f", (float)i / i2);  /*  1.500000 と表示  */
}

defineの型キャスト

defineの型キャストと言う言葉は不適切かもしれないが、本記事の本題である型キャストに寄せた見出しにした。

C言語では以下の様に#defineが多用されているが、これはあくまでも置き換えをしているだけで、実態は単に整数や文字列、浮動小数点を置いているに過ぎない。

参考記事:C言語についての質問です。#defineで宣言した変数は、どのようなデータ型になる… – Yahoo!知恵袋

ReratedPosts

Linuxのopen(低水準入出力)の使い方やfopenとの違いをまとめていく
C言語のvoidの使い方について
C言語の安全な文字列コピーは、strcpyよりもstrncpy、そしてstrlcpyが良い
C言語のコンパイルにおけるアセンブラ→実行ファイルまでの流れをまとめてみた
segmentation fault 11(core dumped)の原因と2つのチェックポイント
ダブルポインタ(ポインタのポインタ)のメリットや使い道を紹介する