Blog
개발중인 미완성 페이지로, 일부 기능이 동작하지 않을 수 있습니다.

C 라이브러리에서 이름 접두사에 대해

2024. 6. 16.|2024. 10. 6.

대부분의 C 라이브러리나 프레임워크에서는 변수, 함수, 타입 등의 이름이 같은 접두사를 공유한다.

예를 들면 안드로이드는 A, libuv는 uv 등...

왜 이런 것이며, 나도 그렇게 하는 게 좋을까?

왜?

라이브러리마다 특별한 접두사를 쓰지 않으면, 다른 라이브러리와 심볼 이름이 겹칠 수 있다.

C에서는 심볼 이름이 겹치면 얄짤없이 링크 오류이기 때문에, 이런 상황은 피해야 한다.

심볼 뿐 아니라 타입도 이름이 겹치면 같은 C 파일에서 이름이 같은 두 타입을 동시에 사용할 수 없다.

라이브러리마다 특별한 접두사를 사용한다면, 그 접두사가 겹치지 않는 이상 심볼 이름이 겹치지 않을 것이므로 대부분의 라이브러리는 그 라이브러리만의 특별한 접두사를 붙여 심볼 이름이 겹치는 것을 방지한다.

그럼 나도?

라이브러리를 만들 때에는 위와 같은 이유로 접두사 하나를 정해서 모든 (static이 아닌) 심볼 및 공개 헤더의 타입 이름이 그 접두사를 공유하게 만드는 것이 좋다.

하지만 그 프로젝트가 라이브러리가 아니라 실행 파일이라면 굳이 그렇게 할 이유가 없다.

C
토막글

Comments