다음 매크로를 사용하여 모든 구조를 선언합니다.
#define structure typedef struct
이것으로 나는 구조를 선언합니다.
structure
{
int foo;
int(*proc)(void*);
}
_myobject;
proc 멤버는 자신이 속한 구조에 대한 포인터 인 인수를 실제로 받았습니다.
예 :
myobj.proc(&myobj);
내 질문은, proc
전달되는 타입을 구조체로 어떻게 선언 할 수 있는지입니다 void *
. .. 차이가 없다는 것을 알고 있습니다. 이것은 제가 많은 시간을 보냈기 때문에 미학만을위한 것입니다. 내 코드를 깨끗하게 유지 ..
structure
{
int foo
int(*foo)(_myobject*);
}
_myobject;
생성 :
error: expected ':', ',', ';', '}' or '__attribute__' before 'int'|
구조를 재귀 적으로 참조하려고하는데 typedef와 잘 어울리지 않습니다. 다음 중 하나를 수행해야합니다.
typedef struct _myobject _myobject;
struct _myobject {
int foo;
int (*proc)(_myobject*);
};
...
typedef struct _myobject {
int foo;
int (*proc)(struct _myobject*);
} _myobject;
편집 :structure
가능한 한 많이 계속 사용하려면 (실제로는 기존 코드와의 일관성을 제외하고는 왜 원하는지 모르겠습니다) 다음을 수행 할 수 있습니다.
structure _myobject _myobject;
struct _myobject {
int foo;
int (*proc)(_myobject*);
};
...
structure _myobject {
int foo;
int (*proc)(struct _myobject*);
} _myobject;
이 두 가지 모두 struct
식별자를 사용해야하지만이 를 피 하려면 식별자를 사용해야 합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다