typedef struct _wax_instance_userdata {
id instance;
BOOL isClass;
Class isSuper;
BOOL actAsSuper;
} wax_instance_userdata;
https://github.com/probablycorey/wax/blob/master/lib/wax_helpers.m#L497* (id *) obj의 목적은 무엇입니까?
id* ret = afunc(); //same without this * .
id lastValue = *(id*)ret;
//now I can use lastValue;
void* afunc(){ // the function is too long
void *value = nil;
// ...
wax_instance_userdata *instanceUserdata = (wax_instance_userdata *)luaL_checkudata(L, stackIndex, WAX_INSTANCE_METATABLE_NAME);
instance = instanceUserdata->instance;
*(id *)value = instance;
return value;
}
https://github.com/probablycorey/wax/blob/master/lib/wax.m#L243 왜 이렇게해야합니까? 나는 *(id*)
id* ret = afunc()
도 이해할 수 없지만이 별을 삭제하면 잘 작동합니다.
https://github.com/probablycorey/wax/blob/master/lib/wax_helpers.m#L497 (라인 497) https://github.com/probablycorey : 당신의 예에서
/wax/blob/master/lib/wax.m#L243 (line 243) – kran
코드는 분명히 Objective-C이므로 평범한 C에는 'id'가 없습니다. –
알아. 제가 말한 의미는 대개 C 조각에서 사람들은 일관성을 위해'void * '를 선호하여'id'를 버리는 경향이 있다는 것입니다. 내가 놓친 것은 이것이 자신의 코드가 아니라는 것입니다. 다음 번에는 원래 질문을 읽는 데 더 많은 시간을 할애 할 것입니다. – ksol