* Предефиниране на типове
Публикувано на 25 октомври 2008 в раздел С/С++.
Друга удобна конструкция в езика С е създаването на собствени имена на типовете на променливите. Това се извършва чрез описанието 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) ако предварително сме ги предефинирали.
Браво за хубавото обяснение. В пъти по-добро и по-просто от доста български учебници по темата ;)
Написал съм го кратко и простичко така, че да е максимално разбираемо. Не смятам, че е по-добре от който и да е учебник :) Благодаря за коментара :)