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;
}
'프로그래밍(이전) > C' 카테고리의 다른 글
블가다의 C언어 강좌) 파일 입출력 & 동적할당 (0) | 2017.06.02 |
---|---|
블가다의 C언어 강좌) 구조체의 개념 밑 활용. (0) | 2017.05.20 |
블가다의 C언어 강좌) 육망성 만들기! (0) | 2017.05.15 |