Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Типы, определяемые пользователем




Соглашения об именах

Мы уже говорили, что для текстов программ характерно однократное написание и многократное прочтение. Весьма значимым при чтении текста программы является отделение имен одного класса объектов от других. Проще всего для этого ввести некоторые соглашения об именах. Например, имена типов и констант писать ТОЛЬКО заглавными буквами. Начинать определение имени без знаковых типов и буквы U (unsigned), перечислимых типов с буквы E (enumeric) и тому подобное. Для этих целей можно воспользоваться следующими определениями:

 

typedef char CHAR; /* general text. Range 0..127 */

typedef unsigned char UCHAR; /* extended text. Range 0..255 */

 

typedef unsigned short BOOL; /* Time efficient Boolean */

typedef unsigned char TBOOL; /* Tiny (space efficient) Boolean */

 

typedef char TINY; /* 8 bit. Range (-2^7-1)..(+2^7) */

typedef unsigned char UTINY; /* 8 bit. Range (0)..(+2^8) */

typedef unsigned char TINYBITS; /* 8 bit. For bit manipulation use*/

 

typedef short SHORT; /* 16 bit.Range (-2^15-1)..(+2^15)*/

typedef unsigned short USHORT; /* 16 bit.Range (0)..(+2^16)*/

typedef unsigned short SHORTBITS;/* 16 bit.For bit manipulation use*/

 

typedef long LONG; /* 32 bit.Range (-2^31-1)..(+2^31)*/

typedef unsigned long ULONG; /* 32 bit.Range (0)..(+2^32) */

typedef unsigned long LONGBITS;/* 32 bit.For bit manipulation use*/

 

typedef int INT; /* Natural machine size integer */

 

Как мы видим один и тот же тип языка Си, например unsigned char, может быть многократно переопределён под различными именами в зависимости от целей его использования.

 

 

Программисту позволяется вводить в программу свои собственные средства кодировки, приписывая каждому значению своё собственное имя (идентификатор). Для этого в Си введён перечислимый тип.

 

Перечислимые:

enum – перечисление констант, например:

 

enum {Yellow=5, Cyan, Magenta};

 

или, если следовать правилу использовать в именах констант только заглавные буквы:

 

enum {YELLOW=5, CYAN, MAGENTA};

 

здесь после первого элемента стоит знак «=» и за ним число, это число определяет с какого значения идёт нумерация перечисленных констант (следующая константа будет иметь значение на единицу больше). Если не указывать это начальное число, то нумерация констант будет идти от нуля. Таким образом, к перечисленным константам можно обращаться по их номерам, а можно задать и полностью свою систему обозначений:

 

typedef enum

{

START_END_FLAG = 0x0001, /* Event Flag 0 */

TEST_END_FLAG = 0x0002, /* Event Flag 1 */

SYS_INIT_END = 0x0004, /* Event Flag 2 */

CODEC_CODE_DOWNLOADED = 0x0008, /* Event Flag 3 */

MODEM_CODE_DOWNLOADED = 0x0010 /* Event Flag 4 */

} E_RUN_FLAG;

 

Такое определение перечислимого типа позволяет закодировать значения единицы в разрядах с 0-го по 4-ый соответственно. Важно только помнить, что константы типа перечисляются ВСЕГДА в порядке возрастания их значений. И, при соблюдении ранее указанных правил наименований, если вы где-либо в программе встретите строку определения:

 

E_RUN_FLAG My_Indicator;

 

То вы легко догадаетесь, что переменная My_Indicator имеет перечислимый тип.

Ключевое слово void определят отсутствие типа, и используется для «нейтрализации» значения, возвращаемого функцией [22].

 





Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.