C_Kurs_Lekt / DOC_RAZNOE / CodeBlocks
.pdfCodeBlocks
Release 10.05 rev 6283 (2010-05-27 09:09:13) gcc 4.4.1 Windows/unicode - 32b
Настройка
[Compiler and debugger settings] => [Toolchain executables] E:\COMPILE\CodeBlocks\MinGW
Пути к библиотекам
[Project build options] => [Linker settings] => [ADD]
для работы с консолью
..\..\..\MinGW\lib\pdcurses\pdcurses.a
для работы с графикой
..\..\..\MinGW\lib\libgdi32.a
..\..\..\MinGW\lib\grx248\libgrx20.a
В языке C/C++ есть определенный набор встроенных базовых типов данных.
Для современных компиляторов это обычно:
void не соответствует никакому типу char символьный
short int // можно просто short int целый
long int // можно long
long long int // можно long long
float вещественный очень малой точности double вещественный двойной точности long double
bool (C++) - логический, true (истина) или false (ложь)
wchar_t (C++) - расширенный символьный (должен поддерживать все представимые в системе символы), Широкий символ, В Windows API, тип wchar_t имеет размер 16 бит, В GNU/Linux тип wchar_t имеет размер 32 бита.
Следует отметить, что тип long long не входит в стандарт ISO C++ 1998, но поддерживается большинством современных компиляторов. Ключевое слово void - не ассоциировано ни с одним типом. Переменную типа void создать нельзя, зато можно использовать этот тип для создания указателей с заранее неизвестным типом. Кроме того, ключевое слово void используется при объявлении функций-процедур без возвращаемых значений, а также может использоваться для явного указания отсутствия параметров функции.
Размеры типов:
Вывод для Windows XP SP3, gcc 4.4.1 Windows/unicode - 32 bit, mingw32-g++.exe (TDM-2 mingw32) 4.4.1:
sizeof(bool): 1 sizeof(wchar_t): 2 sizeof(pointer): 4
В битах:
int - 31 (1 бит на знак) unsigned int - 32
число бит мантиссы для типов с плавающей точкой double - 53
long double - 64
Минимальные / максимальные значения для типов:
For processors where an unsigned integer is held in 16 bits, UINT_MAX is 65535, and for processors where an unsigned integer is held in 32 bits, UINT_MAX is 4294967295.
Важное замечание: sizeof в общем случае возвращает значение не в байтах, а в char'ах. То есть, если char окажется, например, 16 бит, а не 8, то sizeof(char) все равно вернет единицу, sizeof(int) при int размерностью 32 бита вернет 2 и т.д.
По найденной в сети информации, под Windows XP при использовании mingw32- g++.exe 3.4.5 long double может оказаться реально 8 байт, хотя sizeof будет выдавать 12.
Имя типа |
Размер (в байтах) |
|
Min/Max значения |
|||
char |
1 |
|
min |
|
-128 |
|
|
|
|
|
max |
|
127 |
unsigned char |
1 |
|
|
min |
0 |
|
|
|
|
|
max |
|
255 |
short int |
2 |
|
min |
-32768 |
||
|
|
|
max |
32767 |
||
unsigned short int |
2 |
|
|
min |
0 |
|
|
|
|
max |
65535 |
||
int |
4 |
|
min |
-2147483648 |
||
|
|
|
max |
2147483647 |
||
unsigned int |
4 |
|
|
min |
0 |
|
|
|
|
max |
4294967295 |
||
long int |
4 |
|
min |
-2147483648 |
||
|
|
|
max |
2147483647 |
||
unsigned long int |
4 |
|
|
min |
0 |
|
|
|
|
max |
4294967295 |
||
long long int |
8 |
min |
-9223372036854775808 |
|||
|
|
max |
9223372036854775807 |
|||
unsigned long long int |
8 |
|
|
min |
0 |
|
|
|
max |
18446744073709551615 |
|||
float |
4 |
|
min |
1.17549e-038 |
||
|
|
|
max |
3.40282e+038 |
||
double |
8 |
|
min |
2.22507e-308 |
||
|
|
|
max |
1.79769e+308 |
||
long double |
12 |
|
min |
3.3621e-4932 |
||
|
|
max |
1.18973e+4932 |