struct 의 함수 포인터가 구조체 자신의 멤버를 참조 하기 위한
글쓴이: oprsystem / 작성시간: 화, 2005/04/12 - 10:09오전
안녕하세요
typedef struct _test_struct { int aaa; void (*out)(int,int); }TEST_STRUCT; TEST_STRUCT test_struct = { 0xffff,test_out };
이러한 구조체가 있다고 했을때
함수포인터 void (*out)(int,int) 은 아래의 함수와 연결이 됩니다.
void test_out(int a,int b) { [quote] TEST_STRUCT *self = &test_struct; [/quote] printf("%d\r\n",self->aaa); }
제가 궁금한 점은 바로
Quote:
TEST_STRUCT *self = &test_struct;
이 부분 입니다.
구조체 내의 함수포인터가 자신의 구조체내의
구조체 변수를 억세스 하는 방법을 억세스 하는 방법입니다.
예를 들면 C++ 클래스의 멤버 변수를 억세스 하는것처럼 C 로 구현 하는것입니다. 그러기 위해서는 저러한 번거러운 과정이 없었으면 합니다.
구조체가 선언 될때마다 함수 포인터의 구현 함수는 자동으로
자기 자신이 구현된 의 구조체 변수를 억세스 하는 방법이 없을까요?
Forums:
매크로 밖에.. 수단이 없는것일까요.. OTL.....
매크로 밖에.. 수단이 없는것일까요.. OTL.....
황혼보다 어두운 자여
내 몸에 흐르는 피보다 더 붉은 자여
시간의 흐름 속에 파뭍힌 위대한 그대의 이름을 걸고 나 여기서 어둠에 맹세하노라
우리 앞을 가로막고 있는 모든 어리석은 자 들에게
나와 그대의 힘을
위대한 파멸의 힘을 보여줄 것을
C++의 경우
함수 콜할때마다 (내부적으로) 첫번째 인자로 this를 넘겨주는 방식으로 구현됩니다.
http://www.planetpdf.com/codecuts/pdfs/o
http://www.planetpdf.com/codecuts/pdfs/ooc.pdf
초반의 내용이 조금 도움이 될 듯 싶군요.
아래 처럼 사용하기도 합니다. [code:1]typedef str
아래 처럼 사용하기도 합니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
진심으로 감사드립니다.꾸벅.. :D
진심으로 감사드립니다.
꾸벅.. :D
황혼보다 어두운 자여
내 몸에 흐르는 피보다 더 붉은 자여
시간의 흐름 속에 파뭍힌 위대한 그대의 이름을 걸고 나 여기서 어둠에 맹세하노라
우리 앞을 가로막고 있는 모든 어리석은 자 들에게
나와 그대의 힘을
위대한 파멸의 힘을 보여줄 것을
댓글 달기