본문 바로가기
728x90
반응형
SMALL

개념/혼자 공부하는 C언어148

chapter 19) 사용자 정의 헤더 파일을 사용하는 프로그램 typedef struct{ int num; char name[20]; } Student; #include #include "define_header/student.h" int main(void){ Student a = {315, "hong"}; printf("class : %d, name : %s\n", a.num, a.name); return 0; } ### 헤더 파일(`student.h`) 헤더 파일에서는 `Student`라는 이름의 구조체를 정의합니다. 이 구조체에는 두 멤버가 있습니다: `int` 타입의 `num`과 `char` 배열 타입의 `name[20]`. `num`은 학생의 번호를 저장하고, `name`은 학생의 이름을 저장합니다. 구조체 정의 앞에 `typedef` 키워드가 사용되어, .. 2024. 10. 22.
chapter 19) 메크로 함수를 사용한 프로그램 #include #define SUM(a,b) ((a) + (b)) #define MUL(a,b) ((a) + (b)) int main(void){ int a = 10, b = 20, x = 30, y = 40, res; printf("a + b = %d\n", SUM(a, b)); printf("x + y = %d\n", MUL(a, b)); res = 30 / MUL(2, 5); printf("res : %d\n", res); return 0; } ### 코드의 주요 부분 - `#define SUM(a,b) ((a) + (b))`: 두 수 `a`와 `b`의 합을 계산하는 매크로입니다. - `#define MUL(a,b) ((a) + (b))`: 두 수 `a`와 `b`의 곱을 계산해야 하지만, 실수로 .. 2024. 10. 21.
chapter 19) #과 ##을 사용한 메크로 함수 #include #define PRINT_EXPR(x) printf(#x " = %d\n", x) #define NAME_CAT(x,y) (x ## y) int main(void){ int a1, a2; NAME_CAT(a, 1) = 10; NAME_CAT(a, 2) = 20; PRINT_EXPR(a1 + a2); PRINT_EXPR(a2 - a1); return 0; } ### 코드의 주요 부분 - `#define PRINT_EXPR(x) printf(#x " = %d\n", x)`: 이 매크로는 인자로 받은 표현식 `x`를 문자열로 변환하고(`#x`), 그 표현식과 그 결과를 출력합니다. - `#define NAME_CAT(x,y) (x ## y)`: 이 매크로는 두 인자 `x`와 `y`를 결합하여 .. 2024. 10. 20.
chapter 19) 다양한 메크로명 사용 #include #define PI 3.14159 #define LIMIT 100.0 #define MSG "passed!" #define ERR_PRN printf("exit of range pass!\n") int main(void){ double radius, area; printf("input radius (under 10) : "); scanf("%lf", &radius); area = PI * radius * radius; if (area > LIMIT) ERR_PRN; else printf("circle area : %.2lf (%s)\n", area, MSG); return 0; } ### 코드의 주요 부분 설명 - `#define PI 3.14159`은 원주율 PI의 값을 정의하는 매크로.. 2024. 10. 19.
728x90
반응형
LIST