C, PHP, VB, .NET

Дневникът на Филип Петров


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

Публикувано на 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) ако предварително сме ги предефинирали.

 



2 коментара


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

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

Добави коментар

Адресът на електронната поща няма да се публикува


*