2014-09-22 4 views
0

프로젝트의 여러 파일에 필요한 하드웨어 정의가있는 변수 (typedef struct)가 있습니다. extern을 사용하는 것보다 더 우아한 방법이 있습니까?여러 파일에 구조체 사용

+0

헤더 파일을 사용하고 있지 않습니까? – user694733

답변

1

싱글 톤과 같은 것이므로 getInstance 메소드를 구현할 수 있습니다.

struct BAR_ *getBarInstance(void) 
{ 
    static struct BAR_ instance; /* = getInitializedBar() */ 
    return &instance; 
} 
2

main()에 구조체를 선언하고 구조체가 전역 변수가되는 것을 피하기 위해 구조체가 필요한 다양한 함수에 전달하는 것이 좋습니다. 그냥 헤더에 구조체가 있습니다.

이 접근법의 장점은 다음과 같습니다. 기능을 테스트하는 것이 더 쉬워 짐 - 모의 객체를 전달하여 다양한 상태를 시뮬레이션 할 수 있습니다. 구조체가 사용되는 곳을 더 명확하게 해줍니다. 인수로 인수를 사용하는 함수 만 사용하십시오.