다음을 통해 공유


C 형식 지정자

선언에 있는 형식 지정자는 변수 또는 함수 선언의 형식을 정의합니다.

구문

type-specifier: voidcharshortintlongfloatdoublesignedunsignedstruct-or-union-specifierenum-specifiertypedef-name

signed char, signed int, signed short intsigned long int 형식은 해당 unsigned 대응 항목 및 enum과 함께 정수 형식으로 호출됩니다. float, doublelong double 형식 지정자는 부동 또는 부동 소수점 형식이라고 합니다. 변수 또는 함수 선언에서 정수 계열 또는 부동 소수점 형식 지정자를 사용할 수 있습니다. 원래 type-specifier는 선언에 제공되지 않은 경우 int로 이동되었습니다. Microsoft 컴파일러는 더 이상 기본값 int 선언을 허용하지 않습니다.

선택적 키워드 signedunsignedenum을 제외한 정수 계열 형식의 앞이나 뒤에 올 수 있으며, 형식 지정자로 단독으로 사용될 수도 있는데 이 경우 각각 signed intunsigned int로 해석됩니다. 단독으로 사용되는 경우 int 키워드는 signed 로 간주됩니다. 단독으로 사용되는 경우 longshort 키워드는 long intshort int로 해석됩니다.

열거형 형식은 기본 형식으로 간주됩니다. 열거형 형식에 대한 형식 지정자는 열거형 선언에서 설명합니다.

void 키워드는 세 가지 용도가 있습니다. 함수 반환 형식을 지정하고, 인수를 사용하지 않는 함수의 인수 형식 목록을 지정하며, 지정되지 않은 형식에 대한 포인터를 지정합니다. void 형식을 사용하여 값을 반환하지 않는 함수를 선언하거나 지정되지 않은 형식에 대한 포인터를 선언할 수 있습니다. 함수 이름 뒤의 괄호 안에 단독으로 나타나는 void에 대한 자세한 내용은 인수를 참조하세요.

Microsoft 전용

형식 검사는 이제 ANSI 규격이며, 이는 short 형식과 int 형식이 고유한 형식임을 의미합니다. 예를 들어 이 예제는 Microsoft C 컴파일러의 이전 버전에서 허용하던 재정의를 보여줍니다.

int   myfunc();
short myfunc();

다음 예제에서는 다른 형식에 대한 간접 참조를 나타내는 경고도 생성합니다.

int *pi;
short *ps;

ps = pi;  /* Now generates warning */

Microsoft C 컴파일러에서는 부호의 차이에 대한 경고도 생성합니다. 예를 들어:

signed int *pi;
unsigned int *pu;

pi = pu;  /* Now generates warning */

void 형식의 식은 파생 작업에 대해 평가됩니다. 어떤 방식으로든 void 형식인 식의 존재하지 않는 값을 사용할 수 없으며, void 식을 암시적 또는 명시적 변환을 통해 void를 제외한 어떤 형식으로도 변환할 수 없습니다. void 식이 필요한 컨텍스트에서 다른 형식의 식을 사용하는 경우 해당 값은 무시됩니다.

ANSI 사양을 준수하려면 void**int**로 사용할 수 없습니다. void*만 지정되지 않은 형식에 대한 포인터로 사용할 수 있습니다.

Microsoft 전용 끝

typedefTypedef 선언에 설명된 대로 선언이 포함된 더 많은 형식 지정자를 만들 수 있습니다. 각 형식의 크기에 대한 자세한 내용은 기본 형식의 스토리지를 참조하세요.

참조

선언 및 형식
typeof, __typeof__ (C23)
typeof_unqual, __typeof_unqual__ (C23)