C言語11
こうぞうたい
構造体は、1つ以上の異なる種類の変数を組み合わせて新しい資料型を定義します.struct student
{
char name[10];
int age;
int height;
};
struct student
{
char name[10];
int age;
int 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
マクロ関数
データ型とは独立しており、関数のようにインスタンスを呼び出すのではなく、簡単な置換を行うため、速度が速くなりますが、複雑になると使用しないほうがいいです.
Reference
この問題について(C言語11), 我々は、より多くの情報をここで見つけました https://velog.io/@gimmicks_/c11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol