본문 바로가기
공부/C, C++

[C] 분할 구현

by 김샤랑 2022. 1. 2.

[C] 분할 구현


헤더랑 파일을 분리하는 이유

-관리가 편하고 재사용이 편하다. 

 

그렇다면 헤더파일에 함수까지 다 구현해두면 될텐데 왜 굳이 그렇지 않을까?(헤더에는 함수 선언만 해둔다)

 

나누어서 구현할거면 전역변수는?

 

1. 헤더파일에 전역변수를 선언해두고 다른 cpp파일이 #include로 받아서 쓰면 되지 않을까?

-> 틀렸다. #include는 단순한 복붙이다. 각자의 cpp파일에서는 문제가 일어나지 않겠지만 모든 cpp파일을 합쳤을때 변수명이 다 겹쳐 어느 것을 말하는지 알 수 없다. 파일마다 헤더파일에 있는 전역 변수 이름이 각각 생길 뿐이다.

여러 번 정의된 기호가 있다는 링크 단계(LNK) 의 오류가 발생한다.

 

 

2. 우리가 원하는 것(전역변수)을 하기 위해서는 정적 변수(static)와 외부 변수(extern)에 대해 알아야 한다.

-> 다음 포스팅으로 계속

https://syrang.tistory.com/35

 

[C/C++] 변수(지역 변수, 전역 변수, 정적 변수, 외부 변수)

[C/C++] 변수 (지역 변수, 전역 변수, 정적 변수, 외부 변수) 목차  변수의 종류  1. 지역 변수  2. 전역 변수  3. 정적 변수  4. 외부 변수  메모리 영역  1. 스택 영역  2. 데이터 영역  3. 읽기 전용

syrang.tistory.com

 


이번 포스팅에 참고하고 있는 수업 강의이다.

어소트락 게임아카데미 유튜브 강의인데 상당히 퀄리티가 좋다.

23화와 24화를 합쳐도 50분밖에 되지 않으니 보고 싶은 사람은 보길 바란다.

 

https://www.youtube.com/watch?v=ckwQxpWKjxs&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&index=24 

 

 

'공부 > C, C++' 카테고리의 다른 글

[C] 구조체  (0) 2022.01.02
[C] 변수(지역 변수, 전역 변수, 정적 변수, 외부 변수)  (0) 2022.01.02
[C] 배열  (0) 2022.01.01
[C] 재귀 함수(2), 피보나치 수열  (0) 2022.01.01
[C] 비트 연산자 (<<, >>, &, |, xor, ~)  (0) 2022.01.01

댓글