はわわーっ

はわわわわっ

構造体とか

Cの構造体とか。
勉強ついでに適当に書いた。

#include <stdio.h>

typedef struct {
  double x;
  double y;
} coordinate_t;


void print_coordinate(coordinate_t);
void print_coordinate_ptr(const coordinate_t *);
void print_coordinate_array(const coordinate_t [], const int);
void update_coordinate(coordinate_t *);


void print_coordinate(coordinate_t c)
{
  printf("x = %f, y = %f\n", c.x, c.y);
}

void print_coordinate_ptr(const coordinate_t *c)
{
  printf("x = %f, y = %f\n", c->x, c->y);
}

void print_coordinate_array(const coordinate_t c[],
                            const int size)
{
  int i;
  for (i = 0; i < size; i++)
    printf("x = %f, y = %f\n", c[i].x, c[i].y);
}

void update_coordinate(coordinate_t *c)
{
  c->x = 7;
  c->y = 8;
}


int main(void)
{
  coordinate_t c = { 1, 2 };
  coordinate_t *c_ptr = &c;
  coordinate_t c_array[3];
  int i;

  printf("x = %f, y = %f\n", c.x, c.y);
  print_coordinate(c);

  c_ptr->x = 3;
  c_ptr->y = 4;
  print_coordinate_ptr(&c);

  c.x = 5;
  c.y = 6;
  print_coordinate(c);

  update_coordinate(&c);
  print_coordinate_ptr(&c);


  for (i = 0; i < 3; i++) {
    c_array[i].x = 2 * i + 1;
    c_array[i].y = 2 * i + 2;
  }
  print_coordinate_array(c_array, 3);

  return 0;
}