2010-06-03 6 views

답변

0

정적 (전역) 변수와 extern 함수를 사용하여이를 조작 할 수 있습니다.

6

구조체를 .C 파일에 정의하고 헤더의 구조체를 '전달 선언'하십시오.

struct Car 
    { 
    char *brand; 
    int maxspeed; 
    }; 

을 그리고 당신의 .H 파일이 포함될 수 :

그래서 .C 파일이 들어있을 수 다음 자동차 (세터, 게터를 조작하는 함수를 작성

typedef struct Car *CarHandle; 

.. .) 구조체가 정의 된 것과 동일한 .C 파일에 넣습니다. 물론 함수 프로토 타입을 헤더에 넣어야합니다.

이제 CarHandle과 CarHandle에서 작동하는 함수를 호출자가 사용할 수 있지만 Car 구조체 내부의 내용은 볼 수 없습니다.

+1

이 개념을 ADT라고도합니다. –

+1

C 코드에 대해 "C"대 "CPP"파일을 정의해서는 안됩니까? –

+0

그래, .CPP 확장에 익숙해 져서이 예제에서 .C가되어야한다는 것을 잊었다. 나는 그것을 바로 잡았다. – Patrick

0

Peter Miehle이 언급했듯이 모듈에 전용 인 변수와 함수를 만들 수 있습니다 (컴파일러에 따라 달라지는 경우가 종종 있습니다).

모듈을 클래스와 비교할 수 있습니다. static 변수는 모듈 내에서만 액세스 할 수 있습니다. 또한 모듈 내에 static과 같은 함수를 선언함으로써 private 함수와 동등한 것을 가질 수 있습니다.

실제 클래스와 다른 점은 인스턴스를 하나만 가질 수 있다는 것입니다. 그러나 약간의 작업만으로도 여러 인스턴스의 구현을 모방 할 수 있습니다.

관련 문제