1.8 연산자와의 첫 만남
*삼항 연산자(Ternary operator)
int y = (x > 0) ? 1 : 2; // y = 1
(조건) ? 조건이 참일 경우 return : 조건이 거짓일 경우 return;
1.12 헤더 가드가 필요한 이유
헤더 가드 (Header Guards)
헤더가 중복으로 선언되었을 경우를 대비하여 사용하는 것
#pragma once
// MY_ADD가 이미 include 되어 있으면, 다시 include 하지 말라는 뜻
#ifndef MY_ADD
#define MY_ADD
void doSomething()
{
add(1, 2);
}
#endif
위 전처리기는 아래로 대체가 가능하다.
#pragma once
#include "add.h"
void doSomething()
{
add(1, 2);
}
1.13 네임스페이스 (명칭 공간, Namespace)
#include <iostream>
namespace MySpace1
{
int doSomething(int a, int b)
{
return a + b;
}
}
int doSomething(int a, int b)
{
return a * b;
}
using namespace std;
int main()
{
cout << MySpace1::doSomething(3, 4) << endl; // 7
cout << doSomething(3, 4) << endl; // 12
return 0;
}
#include <iostream>
namespace MySpace1
{
namespace InnerSpace
{
int my_function()
{
return 0;
}
}
int doSomething(int a, int b)
{
return a + b;
}
}
namespace MySpace2
{
int doSomething(int a, int b)
{
return a - b;
}
}
using namespace std;
int ex1()
{
using namespace MySpace1;
cout << doSomething(3, 4) << endl; // 7
cout << InnerSpace::my_function() << endl; // 0
return 0;
}
int ex2()
{
using namespace MySpace1::InnerSpace;
cout << my_function() << endl; // 0
return 0;
}
int main()
{
ex1();
ex2();
return 0;
}
1.14 전처리기와의 첫 만남
전처리기 (Preprocessor)
전처리기는 빌드 전에 결정된다.
주로 OS가 윈도우인지, 리눅스인지 확인할 때, 그래픽카드를 확인할 때 사용한다.
#include <iostream>
using namespace std;
#define MY_NUMBER 8
#define MY_WORD "Hello, World"
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define LIKE_APPLE
int main()
{
cout << MY_NUMBER << endl; // 8
cout << MY_WORD << endl; // Hello, World
cout << MAX(1, 3) << endl; // 3
#ifdef LIKE_APPLE
cout << "Apple" << endl; // LIKE_APPLE이 정의되어 있을 경우
#endif
#ifndef LIKE_APPLE
cout << "Orange" << endl; // LIKE_APPLE이 정의되어 있지 않을 경우
#endif
return 0;
}
** #define은 선언된 cpp 파일 내에서만 사용 가능하다.
'C, C++, MFC > 따배C++' 카테고리의 다른 글
| 섹션 2 - 변수와 기본적인 자료 (2) | 2025.03.12 |
|---|---|
| 섹션 0 - 시작해봅시다 (0) | 2024.02.13 |