C 언어 자료형과 Print format
개발관련
2015. 2. 11. 20:46
|
Microsoft Visual C++ recognizes the types shown in the table below.
Type Name | Bytes | Other Names | Range of Values |
---|---|---|---|
int | * | signed, signed int | System dependent |
unsigned int | * | unsigned | System dependent |
__int8 | 1 | char, signed char | –128 to 127 |
__int16 | 2 | short, short int, signed short int | –32,768 to 32,767 |
__int32 | 4 | signed, signed int | –2,147,483,648 to 2,147,483,647 |
__int64 | 8 | none | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
bool | 1 | none | false or true |
char | 1 | signed char | –128 to 127 |
unsigned char | 1 | none | 0 to 255 |
short | 2 | short int, signed short int | –32,768 to 32,767 |
unsigned short | 2 | unsigned short int | 0 to 65,535 |
long | 4 | long int, signed long int | –2,147,483,648 to 2,147,483,647 |
long long | 8 | none (but equivalent to __int64) | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
unsigned long | 4 | unsigned long int | 0 to 4,294,967,295 |
enum | * | none | Same as int |
float | 4 | none | 3.4E +/- 38 (7 digits) |
double | 8 | none | 1.7E +/- 308 (15 digits) |
long double | same as double | none | same as double |
wchar_t | 2 | __wchar_t | 0 to 65,535 |
A variable of __wchar_t designates a wide-character or multibyte character type. By default wchar_t is a typedef for unsigned short.
Sizes of Fundamental Types
Type | Size |
---|---|
bool | 1 byte |
char, unsigned char, signed char | 1 byte |
short, unsigned short | 2 bytes |
int, unsigned int | 4 bytes |
__intn | 1, 2, 4, or 8 bytes depending on the value of n. __intn is Microsoft-specific. |
long, unsigned long | 4 bytes |
float | 4 bytes |
double | 8 bytes |
long double1 | 8 bytes |
long long | Equivalent to __int64. |
1 The representation of long double and double is identical. However, long double and double are separate types.
ype (형)
인수의 형을 지정
d | int값을 부호있는 10진수로 출력 |
i | d와 같음 |
u | int값을 부호없는 10진수로 출력 |
X | int값을 부호없는 16진수로 출력 10~15은 'A'~'F'로 표시 |
x | int값을 부호없는 16진수로 출력 10~15은 'a'~'f'로 표시 |
o | int값을 부호없는 8진수로 출력 |
p | 포인터값을 16진수로 출력 |
s | 문자열 출력 |
c | int값을 문자로 출력 |
C | c와 같음 |
f | double값을 소수로 출력 (예:12.566371) |
e | double값을 지수로 출력 (예:1.256637e+001) |
E | e와 같음 'e'가 'E'로 표시 (예:1.256637E+001)。 |
g | 숫자값의 크기에 따라 f나 e로 출력 (예:12.5664、2.99792e+008) 숫자값의 절대치가 너무 커서 precision의 자리수를 넘는 경우와 숫자값의 절대값이 0.0001보다 작은 경우 e형식이 사용되어짐. 그 외의 경우는 f형식으로 사용됨 |
G | 9와 같음 'e'가 'E'로 표시 |
type long long
printf("%llu", 285212672);
printf("the unsigned int is %u\n\n",a);
printf("the float number is %g, and %G\n\n",b,b);
printf("RAY%n\n\n",&c);
printf("last line prints %d characters\n\n",c);
printf("Address of d is %p\n\n",d);
printf("%d %+d %06d %X %x %o\n\n",
count, count, count, count, count, count);
printf("1234567890123%n4567890123456789\n\n", &count);
printf("Value of count should be 13; count = %d\n\n", count);
printf("%10c%5c\n\n", ch, ch);
printf("%25s\n%25.4s\n\n", string, string);
printf("%f %.2f %e %E\n\n", fp, fp, fp, fp);
printf("%i %i %i\n\n", hex, oct, dec);
the unsigned int is 12
the float number is 123.45 and 123.45
RAY
last line prints 3 characters
Address of d is DD72F9
234 +234 000234 EA ea 352
12345678901234567890123456789
Value of count should be 13; count = 13
h h
computer
comp
251.736600 251.74 2.517366e+02 2.517366E+02
16 8 10
printf("pd01 %%D(10,2) = %D(10,2)\n", pd01);
printf("pd02 %%D( 12 , 4 ) = %D( 12 , 4 )\n", pd02);
printf("pd01 %%010.2D(10,2) = %010.2D(10,2)\n", pd01);
printf("pd02 %%20.2D(12,4) = %20.2D(12,4)\n", pd02);
printf("\n Give strange result if the specified size is wrong!\n");
printf("pd03 %%D(15,3) = %D(15,3)\n\n", pd03);
pd01 %D(10,2) = -12.34
pd02 %D( 12 , 4 ) = 12345678.9876
pd01 %010.2D(10,2) = -000012.34
pd02 %20.2D(12,4) = 12345678.98
Give strange result if the specified size is wrong!
pd03 %D(15,3) = -123456789013.579
c = 'l';
i = 35;
fp = 1.7320508;
/* Format and print various data */
j = sprintf(buffer, "%s\n", s);
j += sprintf(buffer+j, "%c\n", c);
j += sprintf(buffer+j, "%d\n", i);
j += sprintf(buffer+j, "%f\n", fp);
printf("string:\n%s\ncharacter count = %d\n", buff);
string:
baltimore
l
35
1.732051
character count = 24
|
'개발관련' 카테고리의 다른 글
커널 spin lock의 차이점 (0) | 2015.03.17 |
---|---|
ARM Linux Kernel Makefile의 이해와 실행 순서 정리 (0) | 2014.11.23 |
Linux Error 종류 및 코드값 (0) | 2014.11.23 |
블루투스 Service Discovery Protocol(SDP) UUID (0) | 2014.11.23 |
SIGNAL ERROR 정의 및 설명 (0) | 2014.09.03 |