Unix API에 의해 정의된 구조의 필드에 접두사가 있는 이유는 무엇입니까?

Unix API에 의해 정의된 구조의 필드에 접두사가 있는 이유는 무엇입니까?

Unix API에 의해 정의된 구조의 많은 필드에는 와 같은 접두사가 있습니다 sa_. sa_handler이유 struct sigaction는 무엇입니까? 왜 sa_handler안되나요 handler?

답변1

이것은 첫 번째 C 버전까지 거슬러 올라갑니다. 구조 멤버에 대한 별도의 기호 테이블이 없으며 이름이 전역 기호 테이블에 추가됩니다. 명백히 불쾌한 전역 네임스페이스 오염을 유발합니다. 해결책은 오늘날 열거형에 사용하는 것과 동일합니다. 이름 충돌을 피하기 위해 열거형 앞에 몇 글자를 추가합니다.

https://stackoverflow.com/a/10325945/799204

관련 정보