// Estruturas em C: // Formas de agrupar tipos primitivos / outras estruturas #include // definição de uma estrutura com dois campos typedef struct _coord { double x,y; } coord; // função que recebe uma cópia da estrutura void Imprime(coord c) { printf("(%g,%g)\n",c.x,c.y); } // passagem da estrutura por referência void ZeraCoord (coord *c) { (*c).x = 0.0; /* é equivalente a c->x=0; */ c->y = 0.0; /* é equivalente a (*c).y=0; */ } // Os dois tipos de passagem // soma a segunda coordenada a primeira void SomaCoord(coord *c1, coord c2){ c1->x = c1->x + c2.x; c1->y = c1->y + c2.y; } int main(){ coord a, b; a.x=5.0; a.y=10.0; Imprime(a); b=a; Imprime(b); SomaCoord(&a, b); Imprime(a); ZeraCoord(&a); Imprime(a); return 0; }