간혹 초보들 중에 static으로 지정한 함수의 선언을 헤더에 넣었더니 경고나 에러나 나더라
하는 분들이 있다.
그런데 이거 아주 당연한 거다.
static으로 지정된 함수는 의미상 해당 파일의 스코프로 제한된 함수가 된다.
그런데 그 스코프를 벗어난 헤더파일이나 다른 파일에 선언등이 있으면 당연하게 헤더에 있는 선언과 해당 구현 파일에 있는 정의가 서로 다른 함수가 되어 경고나 에러가 나게 된다.
예를들면
test.h
static aa();
test.cpp
#include "test.h"
static aa(){}
의 경우 둘은 서로 다른 aa함수라고 컴파일러와 링커가 인식하게 된다.
이걸 해결하려면 헤더파일에 있는 함수의 선언에 extern을 붙여주면 된다.
팁아닌 팁이랄까;;;
'Info' 카테고리의 다른 글
Info - 구조체의 패딩비트 (0) | 2016.08.31 |
---|---|
Info - 로딩 이미지 생성해주는 사이트 (0) | 2016.08.31 |
Info - 프로그래밍 참조 사이트 (0) | 2016.08.31 |
Info - 개행문자 (0) | 2016.08.31 |
RaspberryPi - 라즈베리파이에서 시리얼통신 하기 (0) | 2016.08.31 |