C言語12


ファイルの分割


コードの数と行数が多ければ多いほど、1つのファイルでは管理が難しくなります.効率を高めるために、ファイルをスライス管理します.
小さな機能単位、大きなモジュール単位、オブジェクト向けのクラス単位.

ヘッダファイルの使い方

  • #include <헤더 파일 이름>:コンパイラが設定したパスでヘッダファイルを検索
  • #include "헤더 파일 이름":現在の作業経路で検索し、ない場合はコンパイラ設定経路で検索します.
  • #include "c:\":絶対パス
  • //main.c
    #include <stdio.h>
    #include "add.h"
    
    int Add(int a, int b);
    
    int main(void)
    {
        int result;
        result = Add(2, 3);
        printf("두 수의 합 : %d\n", result);
        return 0;
    }
    
    //add.h (같은 경로 내)
    int Add(int a, int b)
    {
        return a+b;
    }
    두 수의 합 : 5

    ヘッダファイルフィーチャーとルールの使用

  • 標準ヘッダファイル「stdio.h」とカスタムファイル「stdio.h」が定義されている場合は、カスタムファイルにのみ適用されます.
  • ヘッダファイル宣言時に大文字と小文字を区別しない.
  • 使用
  • 経路区分時/
  • 絶対パスはなるべく使用しない.
  • ヘッダファイルとプロトタイプ

    // main.c
    #include <stdio.h>
    #include "header.h"
    
    int main(void)
    {
        int result;
        result = Add(2, 3);
        printf("두 수의 합 : %d\n", result);
        return 0;
    }
    
    int Add(int a, int b)
    {
        return a+b;
    }
    
    //header.h
    #pragma once
    
    extern int Add(int a, int b);
    関数のプロトタイプは、通常、ヘッダファイルに保存されて使用されます.

    じょうけんコンパイル


    条件によってコンパイルするかどうかを決定し、ソースコード内に特定の領域を指定することでコンパイルするかどうかを決定します.
    #include <stdio.h>
    #define DEBUG 1 // DEBUG가 정의되어 있다.(true)
    
    int main(void)
    {
    #if DEBUG
        printf("디버그 모드로 동작합니다.\n");
    #else
        printf("릴리즈 모드로 동작합니다.\n");
    #endif
        return 0;
    }
    定義されているためDEBUG,#if DEBUG以下のドアは動作しない#else以下のドアは動作しない.

    内蔵マクロ

  • DATE:現在日
  • TIME:現時刻
  • LINE:行番号
  • FILE:ファイル名
  • 内蔵マクロはコードデバッグに役立ちます
    #include <stdio.h>
    
    int main(void)
    {
        printf("현재 날짜는 %s입니다.\n", __DATE__);
        printf("현재 시간은 %s입니다.\n", __TIME__);
        printf("소스 파일은 %s입니다.\n", __FILE__);
        printf("현재 라인번호는 %d입니다.\n", __LINE__);
    }
    현재 날짜는 Mar 29 2022입니다.
    현재 시간은 12:00:24입니다.
    소스 파일은 main.c입니다.
    현재 라인번호는 26입니다.