C 라이브러리에서 이름 접두사에 대해
2024. 6. 16.|2024. 10. 6.
대부분의 C 라이브러리나 프레임워크에서는 변수, 함수, 타입 등의 이름이 같은 접두사를 공유한다.
예를 들면 안드로이드는 A, libuv는 uv 등...
왜 이런 것이며, 나도 그렇게 하는 게 좋을까?
왜?
라이브러리마다 특별한 접두사를 쓰지 않으면, 다른 라이브러리와 심볼 이름이 겹칠 수 있다.
C에서는 심볼 이름이 겹치면 얄짤없이 링크 오류이기 때문에, 이런 상황은 피해야 한다.
심볼 뿐 아니라 타입도 이름이 겹치면 같은 C 파일에서 이름이 같은 두 타입을 동시에 사용할 수 없다.
라이브러리마다 특별한 접두사를 사용한다면, 그 접두사가 겹치지 않는 이상 심볼 이름이 겹치지 않을 것이므로 대부분의 라이브러리는 그 라이브러리만의 특별한 접두사를 붙여 심볼 이름이 겹치는 것을 방지한다.
그럼 나도?
라이브러리를 만들 때에는 위와 같은 이유로 접두사 하나를 정해서 모든 (static이 아닌) 심볼 및 공개 헤더의 타입 이름이 그 접두사를 공유하게 만드는 것이 좋다.
하지만 그 프로젝트가 라이브러리가 아니라 실행 파일이라면 굳이 그렇게 할 이유가 없다.
C
토막글