2013-03-19 4 views
6

:C에서 '짧은'데이터 유형은 무엇입니까? 다음 함수에서

void AddWordData(FILE* dataFile, short word, int* dc) 
{ 
    fprintf(dataFile, "%06o\n", word); 
    ++(*dc); 
} 

함수는 짧은 형을 받고있다. 웹에서 검색했지만 짧은 int를 발견했습니다. 함수가 짧은 형식을 얻는 것은 무엇을 의미합니까? 어떤 데이터 유형입니까?

+2

짧은 정수와 같습니다. –

+0

"% 06o \ n" – Yuval

+2

% 06o \ n' '0'을 6 개 추가하고 'wordal'을 'octal'에 줄 바꿈 (' \ n ") 끝에서. –

답변

14

shortshort int의 약어입니다. 그들은 동의어입니다. short, short int, signed shortsigned short int은 모두 동일한 데이터 유형입니다. short에 정확히 얼마나 많은 비트입니다 컴파일러와 시스템에 따라 달라집니다,하지만 가질 필요가 at least 16 bits :

또한 모든 값의 범위에 대하여 다음과 같은 한계를 존중해야 표준에 부합하는 모든 컴파일러 특정 유형이 받아 들일 수 있습니다. 이것들은 한도가 낮다는 것을 기억하십시오 : 구현은 이들 중 일부 또는 전부를 자유롭게 허용합니다. char의 최소 범위는 char이 부호가 있거나 unsigned 인 것으로 간주되는지 여부에 따라 달라집니다. ... 짧은 int : -32767 to +32767. Wikipedia에서

더보기 :

정수 형식의 실제 크기는 구현에 의해 변화한다. 유일한 보증은, long long가 long보다 작지 않다는 것입니다. 이것은 int보다 작지 만, short보다 작지는 않습니다. 또한 int는 대상 프로세서가 가장 효율적으로 작업 할 수있는 정수 유형이어야합니다. 예를 들어, 모든 유형이 64 비트 일 수 있습니다. 그러나 여러 다른 정수 너비 스키마 (데이터 모델) 만 사용되며 데이터 모델은 서로 다른 프로그램이 통신하는 방식을 정의하므로 주어진 운영 체제 응용 프로그램 인터페이스 내에서 통일 된 데이터 모델이 사용됩니다.

사실 char는 보통 8 비트 크기이며, short는 보통 16 비트 크기이고 long은 보통 32 비트 크기입니다 (마찬가지로 unsigned char, unsigned short 및 unsigned long). 예를 들어 1990 년대 Sun0S 4 Unix, Microsoft MSDOS, 최신 Linux 및 임베디드 8 비트 PIC 마이크로 컨트롤러 용 Microchip MCC18과 같이 다양한 플랫폼에서 이러한 결과가 나타납니다.