Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語における暗黙の戻り値型intとは?旧仕様の挙動とC99での廃止を解説

初期のC言語では、関数の戻り値の型(返却型)を明示的に宣言しなかった場合、その関数は自動的に int 型を返すものとして扱われました。これを「暗黙のint(implicit int)」ルールと呼びます。つまり、戻り値の型が省略されていてもコンパイルエラーにはならず、暗黙的に int 型であると解釈されていたのです。

ただし、この挙動はC99規格以降では廃止されました。C99以降では、たとえ戻り値の型が int であっても省略することは許されず、必ず明示的に型を記述する必要があります。

コード例

以下は、古いCコンパイラ(C89以前)で動作する、戻り値の型を省略した関数の例です。

#include<stdio.h>

my_function(int x) {
    return x * 2;
}

main(void) {
    printf("Value is: %d", my_function(10));
}

実行結果

Value is: 20

解説

上記のコードでは、my_function の戻り値の型が書かれていませんが、暗黙のintルールにより int my_function(int x) と宣言した場合と同じように動作します。同様に main 関数も戻り値の型を省略できました。

しかし、現代のC標準(C99以降)に準拠したコンパイラでこのコードをコンパイルすると、警告またはエラーが発生します。可読性や保守性の観点からも、すべての関数に対して戻り値の型を明示的に指定することが推奨されます。特に main 関数は int main(void) と記述し、プログラムの終了時に return 0; を返すのが標準的な書き方です。

  1. ポインタを使用してユーザーが入力した配列の種類(偶数・奇数・混在)を判定するCプログラム

    問題概要 C言語で、ポインタを使用しながら、配列に格納された要素が「すべて偶数」「すべて奇数」「偶数と奇数の混在」のどのタイプに該当するのかを判定し、その結果を出力するプログラムの作成方法を解説します。 解決方法 まずユーザーに整数の配列を入力してもらい、その後プログラムが配列の種類を自動的に判定して画面に表示します。 例1: 入力「5 3 1」→ 出力「奇数の配列(Odd)」 例2: 入力「2 4 6 8」→ 出力「偶数の配列(Even)」 例3: 入力「1 2 3 4 5」→ 出力「混在の配列(Mixed)」 アルゴリズム ポインタを使って、ユーザーが入力した配列の種類を判定する

  2. C言語の型変換入門:暗黙的変換と明示的変換(キャスト)の違いを徹底解説

    あるデータ型を別のデータ型へ変換することを「型変換(type conversion)」と呼びます。C言語における型変換には、主に以下の2種類があります。 暗黙的な型変換(implicit conversion) 明示的な型変換(explicit conversion) 暗黙的な型変換とは 演算対象(オペランド)同士のデータ型が異なる場合、コンパイラが自動的に行う型変換です。 プログラマが特に指示しなくても、小さいデータ型から大きいデータ型への変換が自動的に実行されます。これを「型の昇格」とも呼びます。 int i,x; float f; double d; long int l;