Atribút | Typ |
---|---|
množstvo benzínu | reálne číslo |
vek | reálne číslo |
stav tachometra | celé číslo |
dátum platnosti stk | dátum a čas |
char meno[128] = "Chrobáčik";
float nadrz = 1.1;
... funkcia v jazyku C modifikuje atribút
Musíme použiť smerníkovú premennú aby sa zmena nezabudla...
void natankuj_nadrz(float* nadrz,float benzin){
*nadrz += benzin;
}
char meno[128]]2] = {"Chrobáčik","Mucinko"};
float nadrz[2] = {0.0, 0.0};
void recykluj(const char* mno[128], float* nadrz,int pocet_aut){
printf("Oh....\n");
}
struct auto {
char meno[128];
float nadrz;
};
(môže ísť do "auto.h")
#ifndef _AUTO_H
#define _AUTO_H
struct car {
char meno[128];
float nadrz;
int tachometer;
};
#endif
#include "auto.h"
int main(){
struct car ke123ab;
// Hhodnota premennej nie je definovaná
return 0;
}
#include "auto.h"
#include <string.h>
int main(){
struct car prazdne_auto;
memset(&prazdne_auto,0,sizeof(struct car));
}
Slúži na modifikáciu členov štruktúry
#include "auto.h"
#include <string.h>
int main(){
// Nové nedefinované auto
struct car ke123ab;
ke123ab.nadrz = 2.3;
strcpy(ke123ab.name,"Chrobáčik");
ke123ab.tachometer = 123;
}
// Pri volani sa vytvára kópia
void kukni_auto(struct car dake_auto){
printf("Páči sa mi %s\n",dake_auto.name);
printf("V nádrži má až %f l benzínu.\n",dake_auto.nadrz);
}
void natankuj10(struct car* dake_auto){
(*dake_auto).nadrz += 10;
}
Operátor *
slúži na získanie hodnoty z adresy
->
Získa hodnotu atribútu zo smerníkovej premennej
void natankuj10(struct car* dake_auto){
dake_auto->nadrz += 10;
}
struct car viacaut[2];
struct car viacaut[2];
viacaut = { {
.meno = "Chrobáčik",
.nadrz = 12.3
},
{
.meno = "Mucinko",
.nadrz = 9.2
}
};
struct car viacaut[`2];
memset(&viacaut,0,sizeof(s) * 2);
void natankuj_auta(struct car* prve_auto, int pocet_aut){
for (int i = 0; i < pocet_aut; i++){
prve_auto[i].nadrz += 10;
}
}
Ľubovoľná adresa môže byť začiatkom poľa
int porovnaj_tachometer(const void* a1,const void* a2){
// Premeníme vsšobecný smerník na smerník na štruktúru
struct auto* aa1 = (struct auto*)a1;
struct auto* aa2 = (struct auto*)a2;
return aa1->tachometer - aa2->tachometer;
}
void zotried_auta(struct car* prve_auto, int pocet_aut){
qsort(prve_auto,pocet_aut,sizeof(struct auto),porovnaj_tachometer);
}
time_t
;struct tm
;time_t
;typedef unsigned long int time_t;
Vieme ľahko robiť aritmetické operácie (pripočítavať a odpočítavať časové intervaly)
Dnes je: 1519650881023
Nový Rok bol: 1514761200000
Rozdiel: 4 889 681 023
Koľko je to hodín?
int main(){
char c = 0;
for (int i = 0; i < 1000; i++){
c = c + 1;
}
printf("Hodnota v premennej c je %d",c);
return 0;
}
time.h
:
struct tm {
int itm_sec // seconds after the minute 0-60*
int tm_min // minutes after the hour 0-59
int tm_hour // hours since midnight 0-23
int tm_mday // day of the month 1-31
int tm_mon // months since January 0-11
int tm_year // years since 1900
int tm_wday // days since Sunday 0-6
int tm_yday // days since January 1 0-365
int tm_isdst // Daylight Saving Time flag
};
void time(time_t*)
aktuálny čas time_t
.struct tm* localtime(time_t*)
konverzia time_t
na struct tm
.const char* asctime(struct tm*)
konverzia struct tm
na reťazec.http://www.cplusplus.com/reference/ctime/localtime/
#include <stdio.h>
#include <time.h>
int main () {
time_t rawtime;
struct tm *timeinfo;
time (&rawtime);
timeinfo = localtime(&rawtime);
printf ("Current local time and date: %s", asctime(timeinfo));
return 0;
}
Dátový typ pre obmedzený počet hodnôt.
enum days {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
};
enum months {
JANUARY = 1, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
};
.
alebo ->
.