const unsigned char *str
위 선언은 문자열을 받으면서 많이 사용하는 표현이다. 보통 "unsigned char의 변하지 않는 포인터"라고 생각하고 사용했는데, 알아보니 "변하지 않는 unsigned char의 포인터"가 맞는 표현이다. 더블 포인터도 마찬가지다. 한글로 쓰니까 좀 이상하게 보이는데 cdecl로 한번 살펴보자.
[superkkt@backup1 ~]$ cdecl
Type `help' or `?' for help
cdecl> explain unsigned char *a
declare a as pointer to unsigned char
cdecl> explain const unsigned char *a
declare a as pointer to const unsigned char
cdecl> explain const unsigned char **a
declare a as pointer to pointer to const unsigned char
Type `help' or `?' for help
cdecl> explain unsigned char *a
declare a as pointer to unsigned char
cdecl> explain const unsigned char *a
declare a as pointer to const unsigned char
cdecl> explain const unsigned char **a
declare a as pointer to pointer to const unsigned char
그럼 처음에 얘기했던 "unsigned char의 변하지 않는 포인터"는 어떻게 선언해야 할까? 이렇게 하면 된다.
[superkkt@backup1 ~]$ cdecl
Type `help' or `?' for help
cdecl> explain unsigned char * const a
declare a as const pointer to unsigned char
Type `help' or `?' for help
cdecl> explain unsigned char * const a
declare a as const pointer to unsigned char

comments
comments rss (+댓글 쓰러가기)