Переменные структурного типа и элементы структуры можно передавать в функции в качестве параметров.
Передача параметров может выполняться:
· по ссылке или указателю;
· по значению.
При передаче параметра по указателю передается только указатель на структуру, при передаче по значению в стек копируется все содержание структуры.
Например:
struct structA {
int i; char c;} sA, *psA=&sA;
void F1(struct structA sA);
// Передача параметров по значению
void F2(struct structA *psA);
// Передача параметров по указателю
void F3(struct structA &sA);
// Передача параметров по ссылке
…
void F2(struct structA *psA) {
psA->i =10; }
// Доступ к элементу структуры
При большой вложенности вызовов и использовании большого числа структур или их значительных размерах вызов по значению может привести к переполнению стека.
Функция может возвращать значение структурного типа или типа указателя на структуру.
Например:
struct structA { int i; char с;};
struct structA Function3(void);
// Функция возвращает значение
// структурного типа
struct structA *Function4(void);
// Функция возвращает указатель
// на структуру