home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.disi.unige.it
/
2015-02-11.ftp.disi.unige.it.tar
/
ftp.disi.unige.it
/
pub
/
.person
/
CataniaB
/
teach-act
/
esempi
/
Strutture_Union
/
struct1.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-04-06
|
1KB
|
69 lines
#include <stdio.h>
/* Record in C definiti con structure */
struct { float x; float y; } R; /* dichiarazione di variabile */
struct punto {float x; float y;}; /* dichiarazione del tipo "punto" */
struct punto Q1,Q2; /* variabili di tipo punto*/
struct punto P={1.5,2.8}; /* iniz. con lista di costanti */
struct punto1 { float x,y,z; } S,T;
/* dichiarazione del tipo e delle variabili */
/* E' possibile usare la dichiarazione "typedef" per ridenominare
nomi di tipo: typedef TIPO NOME; */
typedef long myint;
typdef struct {float x,y;} point;
/* equivale a "struct point {float x,y;};" */
point MP; /* non serve struct */
/* esempio limite il nome della struttura, dei campi, e
* delle varibili possono essere uguali */
struct s {int s,z;};
struct s s;
typedef struct {int el;} el;
el w;
/* NON va bene: el el; */
main()
{
/* accesso ai campi selettore "."
* I record si possono assegnare ma non confrontare direttamente!
*/
printf("\n %f %f",P.x,P.y);
Q1=P; /* Q1 e P hanno lo stesso tipo! */
Q2.x=P.x;
Q2.y=P.y;
P.x=P.y;
/* R=P; Errore di tipo! (sorg. e dest. devono avere lo stesso tipo) */
R.x=P.x; /* campo x campo */
R.y=P.y;
/* Oss: Per confrontare R e P: componente per componente! */
if (P.x==R.x && R.y==P.y);
/* NON si puo' usare direttamente: (P==R) */
}