본문 바로가기
코딩/C++

헤더파일과 헤더 가드

by sonysame 2024. 2. 16.

1. forward declaration

#include <iostream>

using namespace std;

int add(int a, int b);
int multiply(int a, int b);

int main()
{
	cout << add(1, 2) << endl;
	return 0;
}


int add(int a, int b) {
	return a + b;
}
int multiply(int a, int b) {
	return a * b;
}

 

 

2. 헤더파일

헤더파일 사용으로 변경!

 

training.cpp

#include <iostream>
#include "add.h"

using namespace std;

int main()
{
	cout << add(1, 2) << endl;
	return 0;
}

 

add.h

#pragma once

int add(int a, int b);

 

add.cpp

int add(int a, int b) {
	return a + b;
}

 

3. 헤더가드(#pragma once)

training.cpp

#include <iostream>
#include "my_work.h"
#include "add.h"
using namespace std;

int main()
{
	doSomething();
	return 0;
}

->add.h가 두번 포함되기 때문에 에러가 난다. 이때, add.h에 헤더가드인 #pragma once를 넣어주면 한번만 정의된다.

 

 

 

my_work.h

//#pragma once
#include "add.h"

void doSomething() {
	add(1, 2);
}

 

add.h

#pragma once

int add(int a, int b) {

	std::cout << a + b << std::endl;
	return a + b;
}

'코딩 > C++' 카테고리의 다른 글

비트플래그, 비트마스크  (0) 2024.02.17
const  (0) 2024.02.17
namespace  (0) 2024.02.16
모던 C++입문 [1.2 변수]  (0) 2024.02.13
1.4 입출력 스트림(cin, cout) / 1.5 함수 / 1.6 키워드와 식별자 이름  (0) 2024.02.13