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

C言語プログラムの構成を徹底解説!各セクションの役割と書き方

Cプログラムは、コードを記述する際にプログラマーが従うべき一連のプロトコル(決まりごと)によって定義されています。これらのルールを理解することで、読みやすく保守性の高いコードを書くことができます。

Cプログラムを構成する7つのセクション

完全なCプログラムは、以下のような複数のセクションに分けられます。

  • ドキュメンテーションセクション − プログラムに関する情報(作者名、作成日や更新日など)を記述する部分です。「/* */」または「//」で囲まれた情報はコメント行と呼ばれ、コンパイラは実行時にこれらの行を無視します。

  • リンクセクション − プログラムの実行に必要なヘッダファイルをインクルードする部分です。標準入出力を行う「stdio.h」などが代表例です。

  • 定義セクション − マクロ定義など、変数や定数の定義・初期化を行う部分です。

  • 大域宣言(グローバル宣言)セクション − プログラム全体で使用できるグローバル変数を定義する部分です。

  • 関数プロトタイプ宣言セクション − 関数の戻り値の型、引数の型、関数名などの情報を事前に宣言する部分です。

  • main関数 − Cプログラムの実行はこのセクションから開始されます。通常、「宣言部」と「実行部」という2つの主要な部分で構成されます。

  • ユーザー定義セクション − ユーザーが独自の関数を定義し、目的に応じた特定の処理を実行できるようにする部分です。

Cプログラムの一般的な形式

Cプログラムの一般的な形式は以下の通りです。

/* ドキュメンテーションセクション */
プリプロセッサディレクティブ
大域宣言
main ( ){
    ローカル宣言
    実行文
}
戻り値の型 関数名 (引数リスト){
    ローカル宣言
    実行文
}

サンプルプログラム

次は、戻り値なしで引数を受け取る関数を使って足し算を行うCプログラムの例です。

#include<stdio.h>
void main(){
    //関数のプロトタイプ宣言 - (戻り値を返さないためvoidを指定)//
    void sum(int,int);
    //実引数の宣言//
    int a,b;
    //ユーザーからの入力を読み込む//
    printf("Enter a,b :");
    scanf("%d,%d",&a,&b);
    //関数の呼び出し//
    sum(a,b);
}
void sum(int a, int b){//仮引数の宣言
    //変数の宣言//
    int add;
    //加算処理//
    add=a+b;
    //結果の出力//
    printf("Addition of a and b is %d",add);
}

実行結果

上記のプログラムを実行すると、以下のような出力が得られます。

Enter a,b :5,6
Addition of a and b is 11

このように、Cプログラムは各セクションの役割を明確に分けることで、構造的で分かりやすいコードになります。初心者のうちからこの構成を意識してコーディングする習慣をつけると、より大規模なプログラム開発でもスムーズに対応できるようになります。

  1. C言語におけるユニオンとポインタの使い方を徹底解説

    ユニオン(共用体)とは、異なるデータ型を持つ複数の変数が、同一のメモリ領域を共有するための仕組みです。構造体が各メンバーごとに独立したメモリを割り当てるのに対し、ユニオンではすべてのメンバーが同じアドレスを参照するという点が大きな特徴です。 ユニオンの構文 ユニオンを定義するときの基本的な書式は次の通りです。 union タグ名{ データ型 メンバー1; データ型 メンバー2; ---- ---- データ型 メンバーn; }; 実際の記述例を見てみましょう。 union sample{ int a; float b; char

  2. C言語のポインタ入門!宣言・初期化から配列アクセスの実例まで徹底解説

    ポインタ(pointer)とは、他の変数のメモリアドレスを格納するための変数です。C言語においてポインタは、メモリを直接操作したり、関数間でデータを効率的にやり取りしたりするために欠かせない重要な概念です。 ポインタの宣言・初期化とアクセス まず、次のような通常の整数変数の宣言を見てみましょう。 int qty = 179; 変数qtyには値「179」が格納されると同時に、メモリ上のどこかにその格納場所(アドレス)が割り当てられます。 ポインタの宣言 int *p; 「p」はポインタ変数であり、別の整数型(int)変数のアドレスを保持します。変数名の前にアスタリスク(*)を付けることで、「こ