* Предефиниране на типове

Публикувано на 25 октомври 2008 от Филип Петров. Записано в C/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 коментара за “Предефиниране на типове”

 
  1. Stormy написа:

    Браво за хубавото обяснение. В пъти по-добро и по-просто от доста български учебници по темата ;)

     
  2. Филип Петров написа:

    Написал съм го кратко и простичко така, че да е максимално разбираемо. Не смятам, че е по-добре от който и да е учебник :) Благодаря за коментара :)

     

RSS за коментарите

Пусни коментар