типове данни в

В този пост-мамят лист предоставя информация за основните типове данни, C ++ езика за програмиране и особености на тяхното изпълнение. Също така, в края на записването, маса с диапазони на стойности на тези видове.







концепция тип данни

Основната цел на всяка програма се обработват лични данни. Тези различни видове се съхраняват и обработват по различни начини. Във всеки език за програмиране, като всяка константа, променлива, в резултат на оценка на действието или функцията трябва да има определен тип.

тип данни се определят:

  • вътрешен представяне в паметта на компютъра;
  • множество от стойности, които могат да приемат стойност от този тип;
  • операции и функции, които могат да се прилагат за количествата на тази слуз.

Въз основа на тези характеристики, програмистът избира типа на всяка променлива се използва в програма за представяне на реални обекти. Задължително описание на типа позволява на компилатора да извършите проверка на различните структури на програмата. От типа на машината команди зависи от стойността, която ще се използва за обработка на данни.

Всички видове ++ C могат да бъдат разделени в основния и съединение. В C ++, го определя шест основни типове данни да представляват цели числа, реали, характер и логически стойности. Въз основа на тези видове програмист може да въведете описание на съставни типове. Те включват масиви, изброявания, функции, структури, връзки, указатели, съюзи, както и класове.

основните видове данни, в C ++

основни (стандартни) Типовете данни често се наричат ​​аритметика, тъй като те могат да бъдат използвани в аритметични операции. Със следните ключови думи са определени, за да опише основните видове:

  1. междинно съединение (а);
  2. Чар (характер);
  3. wchar_t (широк характер);
  4. BOOL (логично);
  5. поплавък (реален);
  6. двойно (истинско двойна точност).

Първите четири Тинг нарича число (цяло), последните две - типовете с плаваща запетая. Код, който генерира компилатор за преработка, са цели числа, различен от кода за стойности с плаваща точка.

Има четири тип указател. изясняване на вътрешния представяне и обхвата на стойностите на стандартните типове:

  • кратко (кратко);
  • дълго (дължина);
  • подписана (подписан);
  • неподписан (неподписан).

Един тип (междинно съединение)

Int размер тип се определя като стандарт, в зависимост от компютъра и компилатор. За 16-битов процесор от стойността на този тип 2 байта, 32-битова - 4 байта.

Преди името на кратко спецификатор показва вида на компилатор, че е необходимо да се оттегли редица 2 байта, независимо от процесора малко. Спецификаторът дълго означава, че цялата стойност ще заема 4 байта. По този начин, на 16-битови компютри еквиваленти INT и кратко вътр, а на 32-битова - INT и дългосрочен Int.

Вътрешният представителството на стойност цяло число тип - цяло число в двоичен код. При използване спецификатор подписан номер MSB се тълкува като знак (0 - положително число, 1 - отрицателен). Неподписани спецификатор позволява да представлява само положителни числа, тъй като MSB се счита като част от номера на кода. По този начин, обхватът на стойностите на тип Int зависи спецификатори. Границите на цели числа от тип с различни спецификатори за IBM PC-съвместими компютри, са изброени в таблицата "варира прости ценности тип данни" в края на записа.

По подразбиране всички видове цели числа се считат за икона, която е подписана спецификатор може да се пропусне.

Константи в програмата, се дължи на определен тип, в съответствие с техните виждания. Ако този тип по някаква причина не е доволен от програмистите, той може да укажете в желания вид с помощта на наставка L, L (дълга) и U, U (неподписана). Така например, 32L постоянно ще има дълъг тип и заема 4 байта. Възможно е да се използват наставки U и L едновременно, например 0x22UL или 05Lu.







Видове кратко вътр, дълго вътр, подписани вътр и неподписан вътр могат да бъдат сведени до къси, дълги, подписан и неподписан, съответно.

Типът характер (Чар)

В рамките на стойността на тип характер се определя броя на байтовете достатъчни, за да се настанят всеки символ от набора знаци за този компютър, а това доведе до името на вида. Като правило, това е един байт. Вид сивен, както и други видове цели числа могат да бъдат подписани или неподписани. Стойностите могат да се съхраняват със стойността на знак в диапазона -128 до 127. При използване на спецификатор неподписани стойности може да бъде в интервала от O до 255. Това е достатъчно за съхранение на всички символи от ASCII набор 256 символа. Стойностите на тип Чар също се използват за съхранение на цели числа, които не надвишават определения диапазон.

Разширено тип характер (wchar_t)

wchar_t тип проектиран да работи с набор от символи, което е недостатъчно за кодиране един байт, например Unicode. Размерът на този вид зависи от изпълнението; Като правило, това съответства на кратко тип. константи wchar_t тип низ се записват с префикс L, например, L »Вентили».

Булева (BOOL)

Стойностите на логически тип могат да приемат само стойностите верни и неверни, които са запазени думи. вътрешна форма на представяне на невярна стойност - 0 (нула). Всяка друга стойност се тълкува като вярно. Когато вярно трансформация има стойност от 1 до типа на цяло число.

Видовете с плаваща запетая (поплавък, двойни, и дълго двойно)

C ++ стандарт определя три вида съхранение на данни от реални стойности: поплавък, двойни и дълги двойно.

типове данни с плаваща точка, съхранявани в паметта на компютъра по-различно от цяло число. Вътрешният Представянето на реален брой се състои от две части - мантисата и ред. количествата плувка IBM PC-съвместими компютри от типа вземат 4 байта, от които най-малко се дава от знака на мантисата, 8 бита по реда и в рамките на 23 significand. Мантиса - число по-голямо от 1.0, но по-малко от 2.0. Тъй като значителна цифра на мантисата винаги е равно на 1, не се съхраняват.

За стойности двойно тип заема 8 байта, реда и по мантисата отстранява 11 и 52 съответно освобождаване. Дължина на мантисата определя броя на прецизност, а дължината на реда - неговия обхват. Както може да се види от таблицата в края на запис, същия брой байтове запазени за стойността на тип поплавък и дълго ср, границите на приемливите стойности се различават значително поради вътрешна форма представяне.

Спецификаторът много преди името двойно типа показва, че стойността му е дадено от 10 байта.

константи плаваща точка имат тип подразбиране двойно а. Можете да укажете изрично константа тип чрез суфикс F, F (поплавък) и L, L (дълга). Така например, постоянно 2Е + 6л ще бъде от тип дълъг двойно и 1.82f постоянно - с плаваща запетая.

За написването преносим към различни не можем да направим от размера на тип INT предположения софтуерна платформа. За да се получи необходимо да се използва операция sizeof, резултатът от които е с размерите в байтове на тип. Например, за MS-DOS sizeof (междинно съединение) на операционната система ще доведе до 2, и за Windows 98 или OS / 2, резултатът е 4.

Стандартните ANSI диапазони на стойности за главните видове не са посочени, определя само от съотношението между техните размери, например:

sizeof (флоат) ≤ slzeof (двойно) ≤ sizeof (дълго двойно)
sizeof (Чар) ≤ slzeof (къса) ≤ sizeof (инт) ≤ sizeof (дълга)

Минималната и максималната стойност за целочислени типове зависят от изпълнението и са изброени в заглавната част на файла (), Характеристики на реални типове - файл (), както и клас шаблон numeric_limits

Освен по-горе, основните видове език се отнася невалидни тип, но множеството стойности за този тип празно. Той се използва за определяне на функциите, които не връщат стойност, за да се посочи празен списък от аргументи на функцията, както вида на основата на указатели в експлоатация гипс.

Диапазонът на стойностите на прости типове данни в C ++ за IBM PC съвместими компютри

Q: Какво означава терминът IBM PC-съвместим компютър?
A: IBM PC-съвместими компютри (на английски IBM PC съвместими.) - компютърна архитектура в близост до IBM PC, XT и AT. IBM PC-съвместими компютри са базирани на микропроцесори, които са съвместими с Intel 8086 (и, както знаем, всички издадени по-късно Intel процесори са напълно обратно съвместим с 8086). В действителност това е почти всички съвременни компютри.

Различни видове число и реални видове различни гама и точността на представяне на данните въведени, за да се даде възможност на програмист за най-ефективно използване на функционалността на конкретен апарати, тъй като изборът на вида на изчисления зависи от капацитета на скорост и памет. Но оптимизирана за компютри от всеки един вид на програмата може да не е преносим и за други платформи, така че по принцип трябва да се избягва в зависимост от специфичните характеристики на типове данни.

Искам да говоря с вас за написването на прокси сървър за C ++. да ми каже къде да намеря източници за тях? Аз ще бъда много благодарен.

Здравейте. На първо място, това е една много трудна задача за начинаещи. На второ място, по-добре е да се опитаме да напиша нещо, единственият източник да се занимавам глава. На трето място, аз не подкани за това къде да ги намерите.
Със сигурност може да помогне мрежови библиотеки с техните функции, например WinPcap.

Съжалявам, разбира се, но къде тип низ (стринг). Аз съм нов, но също така се счита за вид?
или греша и той не може да отиде към стандартните видове C ++.

низ - това не е от типа на класа. Подробности тук. например