Segítségével mutatók szerkezete programozás C és C

struct BAL úszó egyensúlyát;
char neve [80];
> Személyi;

Ahhoz, hogy a tagok a szerkezet egy mutató egy szerkezet, használja a kezelő „nyíl”. Operator „nyíl” -> alakult a jel „mínusz” szimbólum és „több”. Például eléréséhez tagja a mérleg segítségével p írna:

Ahhoz, hogy megértsük, hogyan kell használni mutatókat szerkezetek, tekintsük az alábbi egyszerű program, amely megjeleníti az óra, perc, és másodperc az időzítés. (Timer sebesség szabályozható változtatásával makrók DELAY.)

/ * A kijelző a program időzítőt. * /
#include
#include
#define DELAY 128000
struct my_time int óra;
int perc;
int másodperc;
>;

void frissítés (struct my_time * t), kijelző (struct my_time * t);
void mydelay (void);

int main (void)
struct my_time systime;
systime.hours = 0;
systime.minutes = 0;
systime.seconds = 0;
for (;;) frissítés (systime);
kijelző (systime);
ha (kbhit ()) return 0;
>
>

void frissítés (struct my_time * t)
t-> másodperc ++;
ha (t-> másodperc == 60)
t-> másodperc = 0;
t-> perc ++;
>
ha (t-> perc == 60)
t-> perc = 0;
t-> óra ++;
>
ha (t-> óra == 24) t-> óra = 0;
mydelay ();
>

void kijelző (struct my_time * t)
printf ( "% 02d:", t-> óra);
printf ( "% 02d:", t-> perc);
printf ( "% 02d \ n", t-> másodperc);
>

void mydelay (void)
long int t;
a (t = 1; t>

Állapítsa Global my.time szerkezetét. A fő () funkció bejelentett és inicializálni a 00:00:00 állásra szerkezeti változó systime típusú my_time. Ez azt jelenti, hogy systime egyetlen ismert funkciója a main ().

Például, hogy a 0, amikor eléri 24:00:00, a következő nyilatkozatot használják.

ha (t-> óra == 24) t-> óra = 0;

MEMO: eléréséhez struktúra tagjai, amikor dolgozik a szerkezet az üzemeltető által alkalmazott „pont”. Ami a szerkezet segítségével pointer üzemeltető használja „nyíl”.

Mint egy utolsó példa a használatát pointerek vizsgálni a szerkezet egy programot használatát szemléltető egész bemeneti függvény. input_xy () funkció határozza meg az x és y koordináták, amely megjeleníti a célzást, és belép egy egész számot. Ebből a célból használja a szerkezetet xyinput.

/ * Példa generalizált bemenet pointerek szerkezetét. * /

#include
#include
#include

struct xyinput int x, y; / * Pozíció a nyomokat a képernyőn * /
char üzenet [80]; / * * Prompt /
int i; / * Engedély érték * /
>;

void input_xy (struct xyinput * info);

int main (void)
struct xyinput káosz;
mess.x = 10;
mess.u = 10;
strcpy (mess.message, "Enter an integer:");
clrscr ();
input_xy (MES);
printf ( "A szám négyzete van: ..", mess.i * mess.i);
vissza 0;
>

/ * Jeleníti eszköztippként a megadott pozícióját és a bemeneti egész értékeket * /
void input_xy (struct xyinput * info)
gotoxy (info-> X, info-> y);
printf (info-> üzenet);
scanf ( "", info-> i);
>

A program clrscr () és gotoxy () függvény, hogy törölje a képernyőt, és vigye a kurzort kell. Mindkét funkció használatához fejlécfájlba conio.h könyvtárak input_hu típus () függvény akkor hasznos, ha a program megjeleníti a különböző információkat. (Tény, hogy hozhat létre több funkciót, mint input_xy () bevezetése más típusú adatokat.)

Kapcsolódó cikkek