c언어 extern 함수 질문 (extern 변수를 하나의 헤더에 모으는 방법)
외부 소스에서 변수를 가져올때 변수명 앞에 extern 을 붙히잖아요
그런데 여러군데 extern 을 쓰다보니 보기도 번잡하고 매번 extern을 붙혀주어야 하기 때문에 뭔가 수고 스러워서
아이디어를 냈습니다.
헤더파일 EXTERNAL.h 를 만들었습니다.(헤더명은 제가 지었습니다)
이전에는 만약 int TEST; 라는 변수가 A 소스에 선언이 되었고 B,C,D 소스에 포함되면 각각
-----------------------
소스A
int TEST;
-----------------------
-----------------------
소스B
extern int TEST;
-----------------------
소스C
extern int TEST;
-----------------------
소스D
extern int TEST;
-----------------------
이렇게 선언을 해주어야 했습니다.
그런데 지금은
-----------------------
소스A
int TEST;
-----------------------
-----------------------
소스B
#include "EXTERNAL.h "
-----------------------
소스C
#include "EXTERNAL.h "
-----------------------
소스D
#include "EXTERNAL.h "
-----------------------
모든 소스시작 부분에 #include "EXTERNAL.h "를 입력하여서
(실제 소스는 20 개 정도 됩니다 20 개소스에 모두 #include "EXTERNAL.h " 를입력하였습니다)
-----------------------
헤더 EXTERNAL
extern int TEST;
-----------------------
이렇게 해서 한번만 extern 변수를 입력해주었습니다.
extern 변수를 EXTERNAL.h 헤더에 모아놓고보니 26개 정도 됩니다.
각 변수들은 최대 6개의 함수에서 쓰이는 것도있고 1번쓰이는 것도 있고 다양합니다.
또한 에러와 워닝이 안나왔고 동작도 잘되었습니다.(컴파일러는 IAR을 쓰고있고 MCU는 STM32F103을 쓰고 있습니다.)
혹시 이렇게 코딩을 하면 무리가 간다던지 속도가 느려진다던지 심각한 문제가 될확률이 있을까요??
삭제된 댓글입니다.
저도 이렇게 사용하고 있습니다