Изведени тип података¶
Програмски језик C ти омогућава да дефинишеш сопствене типове података. То
можеш да урадиш помоћу кључне речи typedef
тако што ћеш дефинисати друго име
за већ постојећи тип или за сложени тип који је изведен из постојећих типова.
Општи облик дефиниције новог типа података је:
typedef tip novo_ime;
Напиши програм у програмском језику C у којем је дефинисан тип података
bodovi
, где бодови могу бити неозначени кратки целобројни подаци, односно
unsigned short int
.
#include <stdio.h>
int main(void)
{
typedef unsigned short int bodovi;
return 0;
}
Допуни претходни програм и деклариши и иницијализуј променљиве, ако су познате вредности броја бодова \(100\) и \(85\) које су Тамара и Влада добили на тесту, а није познат број бодова Алисе и Боба. Након тога, обезбеди унос броја бодова за Алису и Боба и обезбеди испис свих података у једном реду стандардног излаза, где су подаци одвојени размаком.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
typedef unsigned short int bodovi;
bodovi t = 100, v = 85, a, b;
scanf("%hu%hu", &a, &b);
printf("%hu %hu %hu %hu", t, v, a, b);
return 0;
}
Ако корисник у програм унесе 90 и 75, на стандардном излазу исписаће се
100 85 90 75
Над типовима података дефинисаним кључном речју typedef
не можеш користити
модификаторе - модификатори се наводе приликом дефиниције типа.
Због тога ће у следећем програму…
#include <stdio.h>
int main(void)
{
typedef int bodovi;
unsigned short bodovi t = 100, v = 85, a, b;
return 0;
}
…компајлер јавити грешку.
Иако си дефинисао друго име за већ постојеће тип, тај постојећи тип можеш и даље користити у програму.
У следећем програму…
#include <stdio.h>
int main(void)
{
typedef unsigned short int bodovi;
bodovi t = 100, v = 85;
unsigned short int a, b;
return 0;
}
…променљиве t
, v
, a
и b
заправо су истог типа. Кључном речи typedef
не креирају се нови типови - креирају се синоними за већ постојеће типове.
Кључном речју const
можеш дефинисати константне податке изведеног типа.
Напиши програм у програмском језику C у којем су дефинисани константни подаци изведеног типа минимум бодова \(0\), максимум \(100\) и број бодова за позитивну оцену \(51\).
#include <stdio.h>
int main(void)
{
typedef unsigned short int bodovi;
const bodovi min = 0, max = 100, poz = 51;
return 0;
}
У пракси се typedef
највише користи да би се поједноставила декларација
комплексних структура података које се састоје од струкрура или унија - о њима
ћеш учити следеће школске године.