C言語11


こうぞうたい


構造体は、1つ以上の異なる種類の変数を組み合わせて新しい資料型を定義します.
struct student
{
    char name[10];
    int age;
    int height;
};
  • 学生:構造体名
  • name,age,height:構造体メンバー
  • [구조체 변수명].[구조체 멤버]
    st1.name
    メンバーに近い場合は.を使用し、直接近接と呼ぶ.
    #include <stdio.h>
    #include <string.h>
    
    struct student
    {
        char name[10];
        int age;
        int height;
    }st1;
    
    int main(void)
    {
        strcpy(st1.name, "James");
        st1.age = 25;
        st1.height = 178;
        printf("이름 = %s, 나이 = %d, 키 = %d\n", st1.name, st1.age, st1.height);
        return 0;
    }
    이름 = James, 나이 = 25, 키 = 178

    プリプロセッサ


    ソースファイル-(プリプロセッシング)>プリプロセッシングファイル-(コンパイル)>ターゲットファイル-(リンク)>実行可能ファイル#が添付された前処理ゲートは、コンパイラによって処理されず、フロントプロセッサによって処理される.
    プリプロセッサインジケータのタイプ
  • ヘッダファイル宣言:#include
  • 定義
  • マクロ:#define
  • 条件コンパイル:#ifdef
  • マクロ

    #defineプリプロセッサインジケータ付きマクロの使用
    #include <stdio.h>
    #define PI 3.14
    
    int main(void)
    {
        double area;
        double radius;
        fputs("반지름을 입력하시오 :", stdout);
        scanf("%lf", &radius);
        area = radius * radius * PI;
        printf("원의 넓이는 %lf입니다.\n", area);
        return 0;
    }
    반지름을 입력하시오 :30
    원의 넓이는 2826.000000입니다.

    宣言時の注意事項

  • 名前の間にスペースはありません
  • 名の開始時に
  • という数字は使用できません.
    大文字
  • で名前変数
  • を区別する
    アレイを宣言するときに、マクロ定数をアレイの長さとして使用できます.
    #include <stdio.h>
    #define SIZE 5
    
    int main(void)
    {
        char str[SIZE] = "LOVE";
        int i;
        for(i = 0; i < SIZE; i++)
        {
            printf("배열의 요소 %d은 %c\n",i , str[i]);
        }
        return 0;
    }
    배열의 요소 0는 L
    배열의 요소 1는 O
    배열의 요소 2는 V
    배열의 요소 3는 E
    배열의 요소 4는 

    マクロのネスト宣言


    宣言されたマクロは、別のマクロで使用できます.
    #include <stdio.h>
    #define A 5
    #define B A + 10
    
    int main()
    {
        printf("A = %d\n", A);
        printf("B = %d\n", B);
        printf("B * 2 = %d\n", B * 2);
        return 0;
    }
    A = 5
    B = 15
    B * 2 = 25
    あなたが考えているように、B * 2は30のはずですが、コンパイラは簡単にA + 10 * 2に置き換えられているので、25です.それを防ぐために括弧を使います.
    #include <stdio.h>
    #define A 5
    #define B (A + 10)
    
    int main()
    {
        printf("A = %d\n", A);
        printf("B = %d\n", B);
        printf("B * 2 = %d\n", B * 2);
        return 0;
    }
    A = 5
    B = 15
    B * 2 = 30

    マクロ関数


    データ型とは独立しており、関数のようにインスタンスを呼び出すのではなく、簡単な置換を行うため、速度が速くなりますが、複雑になると使用しないほうがいいです.