Програмиране на С строител
Концепцията за тип данни,
тип данни се определят:
- вътрешен представяне в паметта на компютъра;
- множество от стойности, които могат да приемат стойност от този тип;
- операции и функции, които могат да се прилагат за количествата от този тип.
Всички видове ++ C могат да бъдат разделени в основния и съединение. В C ++, го определя шест основни типове данни да представляват цели числа, реали, характер и логически стойности. Въз основа на тези видове програмист може да въведете описание на съставни типове. Те включват масиви, изброявания, функции, структури, връзки, указатели, съюзи, както и класове.
Основните видове данни
основни (стандартни) Типовете данни често се наричат аритметика, тъй като те могат да бъдат използвани в аритметични операции. Със следните ключови думи са определени, за да опише основните видове:
междинно съединение (а);
Чар (характер);
wchar_t (широк характер);
BOOL (логично);
поплавък (реален);
двойно (истинско двойна точност).
Първите четири видове се наричат число (цяло), последните две - типовете с плаваща запетая. Код, който генерира компилатор за преработка, са цели числа, различен от кода за стойности с плаваща точка.
Има четири типа спецификатор определяне на вътрешния представяне и обхвата на стойностите на стандартните типове:
кратко (кратко);
дълго (дължина);
подписана (подписан);
неподписан (неподписан).
Int размер тип се определя като стандарт, в зависимост от компютъра и компилатор. За 16-битов процесор от стойността на този тип 2 байта, 32-битова - 4 байта.
За да се определи точният брой байтове, трябва да напише тестова програма за включване на операцията:
Стойността на променливата S е равен на броя на байтовете, заети от обектите от типа, посочен в скоби. За да се определи целия диапазон от стойности тип данни трябва да се използва формулата:
за подписани типове (вътр - подписан тип) и
за неподписани (неподписани) видове.
Преди името на кратко спецификатор показва вида на компилатор, че е необходимо да се оттегли редица 2 байта, независимо от процесора малко. Спецификаторът дълго означава, че цялата стойност ще заема 4 байта. По този начин, на 16-битови компютри еквиваленти INT и кратко вътр, а на 32-битова - INT и дългосрочен Int.
Вътрешният представителството на стойност цяло число тип - цяло число в двоичен код. При използване спецификатор подписан номер MSB се тълкува като знак (0 - положително число, 1 - отрицателен). Неподписани спецификатор позволява да представлява само положителни числа, тъй като MSB се счита като част от номера на кода. По този начин, обхватът на стойностите на тип Int зависи спецификатори.
По подразбиране всички видове цели числа се считат за икона, която е подписана спецификатор може да се пропусне.
Константи в програмата, се дължи на определен тип, в съответствие с техните виждания. Ако този тип, независимо по каква причина, не уста raivaet програмист, може да укажете в желания вид с помощта на наставка L, L (дълга) и U, U (неподписана). Така например, 32L постоянно ще има дълъг тип и заема 4 байта. Възможно е да се използват наставки U и L едновременно, например Ox22UL или 05Lu.
Видове кратко вътр, дълго вътр, подписани вътр и неподписан вътр могат да бъдат сведени до къси, дълги, подписан и неподписан, съответно.
тип символи (знак).
В рамките на стойността на тип характер се определя броя на байтовете, достатъчно, за да се настанят десетичната кода на всеки символ в набора от символи за този компютър, а това доведе до името на вида. Като правило, това е един байт. Вид сивен, както и други видове цели числа могат да бъдат подписани или неподписани. Стойностите могат да се съхраняват със стойността на знак в диапазона -128 до 127. При използване на спецификатор неподписани стойности могат да варират от 0 до 255. Това е достатъчно за съхранение на всички символи от ASCII набор 256 символа. Стойностите на тип Чар също се използват за съхранение на цели числа, които не надвишават определения диапазон.
Булева (BOOL).
Стойностите на логически тип могат да приемат само стойностите верни и неверни, които са запазени думи. вътрешна форма на представяне на невярна стойност - 0 (нула). Всяка друга стойност се тълкува като вярно. Когато вярно трансформация има стойност от 1 до типа на цяло число.
Реал тип (поплавък, двойно и дълго двойно).
C ++ стандарт определя три вида съхранение на данни от реални стойности: поплавък, двойни и дълги двойно.
реални типове данни, съхранявани в паметта на компютъра по-различно от цяло число. Вътрешният Представянето на реален брой се състои от две части - мантисата и ред. количествата плувка IBM PC-съвместими компютри от типа вземат 4 байта, от които най-малко се дава от знака на мантисата, 8 бита по реда и в рамките на 23 significand.
За стойности двойно тип заема 8 байта, реда и по мантисата отстранява 11 и 52 съответно освобождаване. Дължина на мантисата определя броя на точка-ност, и по реда на дължината - на неговия обхват.
Спецификаторът много преди името двойно типа показва, че стойността възложени 10 байта.
недвижими видове гама стойност се определя чрез тест програма, в която искате по някакъв начин да разберете стойността на тези константи:
FLT_MIN ... FLT_MAX - набор поплавък
DBL_MIN ... DBL_MAX - двойно тип гама,
LDBL_MIN ... LDBL_MAX - тип гама дълго двойно.
Тези константи са в библиотеката
константи плаваща точка имат тип подразбиране двойно а. Можете да укажете изрично константа тип чрез суфикс F, F (поплавък) и L, една (дълга). Така например, постоянно 2Е + 6л ще бъде от тип дълъг двойно и 1.82f постоянно - с плаваща запетая.
Стандартните ANSI диапазони на стойности за главните видове не са посочени, определя само от съотношението между техните размери, например:
sizeof (флоат) Различни видове число и реални видове различни гама и точността на представяне на данните въведени, за да се даде възможност на програмист за най-ефективно използване на функционалността на конкретен апарати, тъй като изборът на вида на изчисления зависи от капацитета на скорост и памет. Но оптимизирана за компютри от всеки един вид на програмата може да не е преносим и за други платформи, така че по принцип трябва да се избягва в зависимост от специфичните характеристики на типове данни. Освен по-горе, основните видове език се отнася невалидни тип, но множеството стойности за този тип празно. Той се използва за определяне на функциите, които не връщат стойности (такива функции в Паскал нарича процедури, но процедурите за C език не), за да покаже празен списък от аргументи на функцията като вида на основата за указатели и актьорите.