반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 컴퓨터비전
- 데이터구조
- 2
- 보안
- 버전관리
- 빅데이터
- 파이썬
- 프로그래밍
- 데이터분석
- 인공지능
- 자료구조
- 딥러닝
- 클라우드컴퓨팅
- 데이터베이스
- Yes
- 컴퓨터과학
- 네트워크보안
- 프로그래밍언어
- 머신러닝
- 컴퓨터공학
- I'm Sorry
- 웹개발
- 사이버보안
- 네트워크
- 자바스크립트
- 소프트웨어공학
- 데이터과학
- 코딩
- 소프트웨어
- 알고리즘
Archives
- Today
- Total
스택큐힙리스트
헤더 파일에서 함수를 "extern"으로 만들어야 할까요? 본문
반응형
헤더 파일에서 기능을 extern
으로 만들어야 할까요? 아니면 기본적으로 extern
으로 되어 있을까요?
예를 들어, 다음과 같이 작성해야 할까요:
// birthdays.h
struct person find_birthday(const char* name);
아니면 다음과 같이 작성해야 할까요:
// birthdays.h
extern struct person find_birthday(const char* name);
답변 1
C 책에서:
만약 선언에 extern
저장 클래스 지정자가 포함되어 있거나 저장 클래스 지정자가 없는 함수의 선언인 경우:
- 이미 파일 범위에서 해당 식별자의 가시적인 선언이 있는 경우, 결과적인 연결은
가시적인 선언과 동일하게 됩니다;- 그렇지 않을 경우 결과는 외부 연결성입니다.
따라서 번역 단위에서 이것만 선언된 경우 외부 연결성을 가질 것입니다.
답변 2
함수가 헤더 파일에서 extern으로 선언되어야 할까요?헤더 파일은 C 및 C++ 프로그래밍에서 중요한 역할을 합니다. 이 파일은 프로그램에서 사용되는 함수 및 변수의 선언을 포함하고 있으며, 다른 소스 파일에서 해당 함수와 변수에 대한 액세스를 가능하게 합니다. 따라서 헤더 파일은 소스 코드의 구조와 모듈성을 유지하고, 코드의 재사용성을 향상시킵니다.
일반적으로 헤더 파일에는 함수의 선언만 포함되어 있으며, 함수의 정의는 별도의 소스 파일에 있습니다. 이렇게 소스 파일과 헤더 파일이 분리되어 있을 때, extern 키워드를 사용하여 다른 소스 파일에서 해당 함수에 액세스할 수 있습니다. 그러나 함수를 extern으로 선언하는 것은 일반적으로 좋은 방법은 아닙니다.
함수를 extern으로 선언하는 것은 함수의 정의가 다른 소스 파일에 있음을 나타내는 것입니다. 이는 프로그램의 유지 보수를 어렵게 만들 수 있습니다. 특히 큰 프로젝트에서는 많은 소스 파일이 참여하여 복잡도가 증가하므로, 함수 및 변수의 위치를 파악하기 어려울 수 있습니다. 이로 인해 디버깅과 수정이 어려워질 수 있습니다.
또한, 함수를 extern으로 선언하는 것은 기존 코드의 가독성을 떨어뜨릴 수 있습니다. 함수의 선언과 정의는 가능한 가까이에 위치해야 합니다. 이렇게 하면 코드를 이해하고 유지 보수하는 데 도움이 됩니다. extern을 사용하면 함수의 선언과 정의가 분리되어 코드를 이해하기 어려울 수 있습니다.
따라서 함수를 extern으로 선언하는 것은 좋은 프로그래밍 습관이 아닙니다. 헤더 파일에는 함수의 선언만 포함되어야 하며, 정의는 별도의 소스 파일에 위치해야 합니다. 이렇게 함으로써 코드의 유지 보수성과 가독성을 향상시키는 동시에 개발 프로세스를 좀 더 효율적으로 만들 수 있습니다.
결론적으로, 함수를 extern으로 선언하는 것은 헤더 파일의 목적에 부합하지 않으며, 코드의 복잡성과 가독성을 저하시킬 수 있습니다. 따라서 개발자는 함수를 선언할 때 extern을 사용하지 않아야 합니다. 이렇게 함으로써 프로그램의 유지 보수성, 가독성 및 효율성을 향상시킬 수 있습니다.
반응형
Comments