void형 변수란게 뭐죠..?
글쓴이: 익명 사용자 / 작성시간: 화, 2002/01/29 - 2:08오후
C 프로그래밍 공부를 하고있는데 궁금한점이 있어서 질문합니다.
함수에서 void형 함수는 어떤의미인지 알겠는데..
변수 선언에서 void형으로 선언한다는 것이 어떤 의미인지 잘 모르겠습니
다.
소스를 보니
typedef void *HASHTABLE;
이렇게 해놓고..
변수 선언을 할때
HASHTABLE cmd__line;
이런식으로 선언하는데 그럼 cmd__line이라는 변수는 void형 포인터 변수
라고 생각됩니다.
근데 void형 변수가 어떤 의미인지 모르겠습니다.
어떤 자료형이 저장되는 것이지요...?
Forums:
Re: void형 변수란게 뭐죠..?
책 찾아보면 대번에 나오는 건뎅.
ㄹㄹ
이런 답변은 왜 다는걸까..
Re: void형 변수란게 뭐죠..?
void *
범용포인터(Generic Pointer)로 사용됩니다.
즉, 어떤포인터이든 받아 들일 수 있죠.
예를들어
int memset(void *p, int c, size_t size);
를 본다면
p에는 어떠한 포인터형도 들어갈 수 있게 됩니다.
하지만 다음 예를 보면
void func(void *p)
{
p->close();
}
class MyFileHandler { ... };
MyFileHandler f;
func(&f);
로 했다면 에러가 납니다.
즉 func에서 받은 p는 범용이므로 사용전에 항상 적절한 캐스팅이 필요하죠
그렇다면 func를 다음과 같이 고칠 수 있습니다.
void func(void *p)
{
((MyFileHandler *)p)->close();
}
참고로 void * 형은 동적인 argument전달에 주로 사용이 됩니다.
답변감사합니다..
답변 감사합니다...
너무 쉽게 이해가 되게 설명해 주셔서 감사합니다..
그리고 ㄷ죠45ㅛ님 책찾아보면 나온다고 했는데...
어떤책을 보면 잘 나와 있을까요..?
제가 가지고 있는책에는 없어서리.. 책이 별로 않좋은거 같아요...
검색해봐도 그 설명이 별로 없더라고요...
암튼 궁금했었는데 확 뚫린 느낌입니다.
댓글 달기