블가다의 C언어 강좌) 매크로, 인라인 함수, typedef, 구조체 포인터에 대한 실습.

2017. 5. 20. 09:09프로그래밍(이전)/C

매크로함수 : 어떠한 길고 반복되는 코드를 하나의 함수로 치환시켜 코딩을 용이하게 해줌


#define [매크로이름] [작동될 코드] or

#define [매크로이름]([받게될 정수형이나 문자형의 이름]) [앞의 나온 변수를 이용한 함수]


하지만 #define은 식을 인자로 받을때 제데로 동작하지 않는다. 이것을 보완한 것이



인라인함수


_lnline [함수이름]([인자]) { 매크로할 함수 식 }




typedef: 자신이 원래 있던 자료형을 새로운 이름으로 만들어 줄 수 있음.


typedef [원래있던 자료형] [새로 정할 자료형] ;




구조체 포인터


void A(struct [구조체분류] *[구조체이름])

{

//이 안에서 포인터로 계산

}

메인함수 안에서 구조체 포인터 함수로 보내기.

A(&[구조체이름]);





#include <stdio.h> //헤더파일 불러오기


#define AGE 17 //AGE라고 쓰고 17이라 계산하는 매크로 설정


typedef int B; //int라는 자료형을 B로 다시 정의


typedef struct //구조체의 종류 생성과 동시에 struct 라는 자료형을 Person으로 다시 정의

{

int age;

int grade;

} Person;


void f(Person *p)//구조체 포인터 함수

{

p->age += 1;

p->grade += 1;

}


int main(void)

{

Person p; //구조체 하나 만듦

B b = 1; //int 대신에 B자료형으로 정수 생성

int a = AGE; //정수형인 a를 AGE가 대신 계산되는 17로 대입

    printf("%d %d\n",a,b);

p.age=10; //생성한 구조체의 변수 설정

p.grade=3;

f(&p); //구조체 포인터 함수 작동

printf("%d %d\n",p.age,p.grade);


    return 0;

}