본문 바로가기

C++

7. 구조체, enum, #define

1.구조체

#include<iostram>


struct tag //구조체
{
	const char* name;
	int hp;
    int mp;
    float speed;
    
}t4; // 마지막엔 세미콜론을 박아준다. // 1.

void main()
{
	//2.
    tag t1; //선언
	t1.char* = "Go블린"
    t1.hp = 80;
    t1.mp = 0;
    t1.speed = 2.1f;
    
    //3.
    tag t2 = {"Co볼트", 70, 0, 2.6}
    
    //4.
    tag t3[5];
    
}

1. 구조체의 끝 }; 부분에 저렇게 선언 가능 아래 선언된 것들 처럼 사용가능
2. 저런식으로 하나 만들고 여러개의 변수를 넣어줄 수 있음.
3. 3번과 같이 한번에 넣어줄 수 도 있음.
4. 4번과 같이 배열을 사용해 여러개를 한번에 만들 수 있음.

2.enum문(열거형)

#include<iostream>

enum TEST
{
	ZERO, // 0의 값을 가짐
	ONE, // 다음으로 갈수록 +1됨 그렇기에 ONE의 값은 1
	TWO = 2, //값을 넣어 초기화도 가능
	THREE,	//넘어갈수록 +1되어 그 전 값에서 더해 THREE는 3
};

void main()
{
	TEST test; // 선언
    
	switch(test)
	{
		case ZERO:
		break;
		case ONE:
		break;
		case TWO:
		break;
		case THREE:
		break;
	}
}

1. enum문(열거형)은 switch에 사용가능!
2. 선언 후 저렇게 사용하면 case에 0 1 2 3이 아니라 enum문에 열거자가 case에 들어가서 보기 좋음
3. enum문도 끝에 세미콜론을 박아줘야함

3-1#define

#include<iostream>

#define sum 100  //세미콜론을 넣지 않음!
#define X(x) x*x // #define 이름 매크로


void main()
{
	int i = 0;
    int i1 = 0;
    int j = 10;
   	int k = 5;
    
    i = j + sum; // 1.
   	i1 = X(k);
}

1. i 의 값은 sum은 100이기 때문에 j + 100 = 110이다.
2-1. i1의 값은 65

2-2.#define 안에서 연산은 (k+j)*(k+j)가 아니라

2-3. k+j*k+j 라서 5+10*5+10 이다.
2-4. 2-2와 같은 연산을 원한다면 X((k+j)) 이렇게 넣어야한다

3-2 #ifdef

#include<iostream>

#define sum


void main()
{
#ifdef sum 1.

#else

#endif
}

1. sum 매크로가 있을 경우 #ifdef가 실행
2. 아니라면 #else 실행
3. if문 같다.

'C++' 카테고리의 다른 글

9. (간단한)포인터  (0) 2021.05.20
8. 함수  (0) 2021.05.20
6. 형 변환  (0) 2021.05.20
5. 배열, 셔플 알고리즘  (0) 2021.05.20
4. 반복문 , 제어문  (0) 2021.05.20