typedef 문법 관련된 질문입니다...

kite7의 이미지

안녕하세요.

윈도우 쪽에서 typedef이 선언된 것을 보니

typedef char CHAR, *PSTR;

이와 같이 사용하고있었습니다.

제가 이해하기로는

typedef char CHAR;
typedef char* PSTR;

이것인 것 같은데 맞습니까.?

gcc로 테스트를 해봤는데

#include <stdio.h>
typedef char CHAR, *PTCHAR;
 
 
int main(void)
{
        CHAR str[20];
 
        scanf("%s", str);
 
        PTCHAR copy_str;
 
        copy_str = str;
        printf("%s\n", copy_str);
        return 0;
}

위와 같이 했구요.
컴파일은 gcc test.c -ansi 로 했습니다. 잘 동작하더군요.

그리고 원래 ','(콤마)를 사용해서 저런식으로 선언을 해서 사용하는 것이 ISO 표준인지 궁금합니다.
전 처음에는 원래 사용한 데이터형이 char이므로 CHAR와 PTCHAR도 모두 char를 뜻하는 것인줄 알았거든요.

익명사용자의 이미지

질문이....?

scanf("%s", str);

copy_str = str;

둘 중의 어느 것이 동작하지 않을 것이라 생각하신 건가요 ?
kite7의 이미지

제가 질문을 조리있게 못했나봅니다.. ^^"

typedef char CHAR, *PSTR; 이것이

typedef char CHAR; 요 두놈으로 선언하는 것이랑 같은 효과인 것이 맞는 것인지...
typedef char* PSTR;

그리고 C와 C++ 표준에 맞는 문법인지도요..