* Предефиниране на типове
Публикувано на 25 октомври 2008 в раздел С/C++.
Друга удобна конструкция в езика С е създаването на собствени имена на типовете на променливите. Това се извършва чрез описанието typedef:
typedef <стар тип> <нов тип>;
Името определено с typedef може да се използва за описание на променливи (то е еквивалентно на съществуващ тип). Например:
typedef int NEWNAME; NEWNAME i,j;
Този пример практически създава све променливи от тип int. Естествено използването на сложни типове данни не е проблем:
typedef float FARR[100]; typedef char *WORD; typedef char *FUNC(); FARR a; // Еквивалентно на float a[100] WORD p, q; // Еквивалентно на char *p,*q; FUNC name; // Декларира функция, която връща указател от тип char
Възможно е дори създаването на структури:
typedef struct test{
int hour;
int min;
float sec;
} TIME;
TIME x; // Еквивалентно на struct test x;
Съществено е да се отбележи, че typedef използва съществуващи в езика типове, а не дефинира нови типове данни.
Предимствата на typedef са следните:
- Увеличава се прегледността на програмата
- По-компактни записи
- По-добра преносимост на програмите
Като пример за последното изброено предимство е например пренасянето на код от 32 на 64 битов компилатор. Можем лесно да коригираме различните големини на данните само с една промяна (int64 -> int32) ако предварително сме ги предефинирали.
2 коментара за “Предефиниране на типове”
Пусни коментар
Категории
- Бази от Данни (39)
- Вероятности (30)
- История (14)
- Кучета (67)
- Лада Нива (91)
- Математика (158)
- Методика (52)
- Общи работи (107)
- ПИК-3 Java (38)
- Политика (40)
- Програмни Среди (1)
- ПТСК (37)
- С/C++ (45)
- Семейни (15)
- Физика (35)
- ХHTML/JS (25)
- Храна (11)
Нови
- Здравей бебе!
- Какво означават метеорологичните кодове?
- Берра проправя пътеки
- Задача от YES
- Колан за теглене на автомобил
22 ноември 2009 на 23:37
Браво за хубавото обяснение. В пъти по-добро и по-просто от доста български учебници по темата ;)
23 ноември 2009 на 15:08
Написал съм го кратко и простичко така, че да е максимално разбираемо. Не смятам, че е по-добре от който и да е учебник :) Благодаря за коментара :)