Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Передача структуры в функцию



Непосредственный доступ к компонентам структуры - плохой стиль программирования. Все операции, которые разрешены применительно к структуре, должны быть при этом реализованы в виде отдельных функций. Не все компиляторы языка Си позволяют передавать структуры в функцию по значению, поэтому в примерах передача структуры идет через указатель.

Пример 5.

/* Передача структуры в функцию через указатель на структуру */

/* Определение комплексного числа через структуру и действия */

/* над комплексными числами (ввод, вывод, вычисление суммы) */


#include <stdio.h>

typedef struct { float a; /* действительная часть */

float b; /* мнимая часть */

} COMPLEX;

void vvod(COMPLEX *,float,float);

void sum(COMPLEX *,COMPLEX *,COMPLEX *);

void out(COMPLEX *);

Void main(void)

{

COMPLEX x,y,z;

vvod(&x,2.5,6.7);

vvod(&y,6.89,8.45);

puts("Введены числа:");

out(&x);

out(&y);

sum(&x,&y,&z);

puts("Сумма комплексных чисел равна:");

out(&z);

}

/* Вывод комплексного числа */

void out(COMPLEX *p)

{

printf("(%.2f,%.2f)\n", (*p).a,(*p).b);

Return;

}

/* Вычисление суммы двух комплексных чисел */

void sum(COMPLEX *p1,COMPLEX *p2,COMPLEX *p3)

{

(*p3).a=(*p1).a+(*p2).a;

(*p3).b=(*p1).b+(*p2).b;

Return;

}

/* Ввод значений для элементов структуры */

void vvod(COMPLEX *p,float a, float b)

{

p->a=a;

p->b=b;

Return;

}






Дата публикования: 2014-11-28; Прочитано: 175 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.039 с)...