はじめに

初級(前編)(後編)、中級と続いて、いよいよ上級編まできました☺️
C言語を扱う上で必須ではありませんが、より実践的な手法を紹介します。

関数マクロ

#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define SQUARE(x) ((x) * (x))

int main() {
    printf("%d\n", MAX(3, 5));   // 5
    printf("%d\n", SQUARE(4));   // 16
    return 0;
}

ビット演算

int a = 0b1010; // 10
int b = 0b1100; // 12

printf("%d\n", a & b);  // AND: 8
printf("%d\n", a | b);  // OR: 14
printf("%d\n", a ^ b);  // XOR: 6
printf("%d\n", ~a);     // NOT: -11
printf("%d\n", a << 1); // 左シフト: 20
printf("%d\n", a >> 1); // 右シフト: 5

動的メモリ確保

#include 

int* arr = (int*)malloc(sizeof(int) * 10);
if (arr == NULL) {
    // エラー処理
}
for (int i = 0; i < 10; i++) {
    arr[i] = i;
}
free(arr); // 必ず解放する

構造体

typedef struct {
    char name[50];
    int age;
    float score;
} Student;

Student s;
strcpy(s.name, "eight");
s.age = 30;
s.score = 95.5f;

さいごに

上級編の内容を理解することで、より実践的なC言語プログラミングができるようになります。
それでは、今回はここまで。ありがとうございました😊