タイプ間の変換
C言語のデータ型は変換可能
型変換
必須の型変換構文
(タイプ)var_name;
(タイプ)値;
キャストの結果
ターゲットタイプはターゲット値に対応できます。結果は変わりません
ターゲットタイプはターゲット値に対応できません:結果は切り捨てられます
注:
すべての必須の型変換が成功するわけではありません。必須の型変換が不可能な場合、コンパイラはエラーメッセージを生成します。
暗黙的な型変換
コンパイラー型変換
注:
ロー型からハイ型への暗黙的な型変換は安全であり、切り捨ては発生しません
ハイタイプからロータイプへの暗黙的なタイプ変換は安全ではなく、誤った結果につながります
暗黙的な型変換の発生ポイント
算術式、ロータイプからハイタイプ
代入式では、式の値は左側の変数の型に変換されます
関数が呼び出されると、実際のパラメーターが仮パラメーターに変換されます。
要約:
必須の型変換はプログラマーの責任です
-変換により切り捨てが発生することがある
変換ではハイタイプとロータイプを区別しません
変換が失敗すると、コンパイラーはエラー・メッセージを出します
暗黙的な型変換はコンパイラによって自動的に行われます
ロータイプからハイタイプへの変換は安全です
ハイタイプからロータイプへの変換は安全ではありません
標準のCコンパイラの型チェックは比較的緩いため、暗黙的な型変換により予期しないエラーが発生する可能性があります