Передача структур функцій

У цьому розділі розповідається про передачу структур та їх членів функцій.

Передача членів структур функцій

При передачі функції члена структури передається його значення, до того ж не грає ролі те, що значення береться з члена структури. Проаналізуйте, наприклад, наступну структуру:

Наприклад, зверніть увагу, яким чином кожен член цієї структури передається функції:

У кожному з цих випадків функції передається значення певного елемента, і тут не має значення те, що цей елемент є частиною будь-якої більшої сукупності.

Передача цілих структур функцій

Коли в якості аргументу функції використовується структура, то для передачі цілої структури використовується звичайний спосіб виклику за значенням. Це, звичайно, означає, що будь-які зміни у вмісті параметра всередині функції не позначаться на тій структурі, яка передана в якості аргументу.

При використанні структури як аргумент треба пам'ятати, що тип аргументу повинен відповідати типу параметра. Наприклад, в наступній програмі і аргумент arg. і параметр parm оголошуються з одним і тим же типом структури.

Як вже говорилося, при передачі структури тип аргументу повинен збігатися з типом параметра. Для аргументу і параметра недостатньо просто бути фізично схожими; повинні збігатися навіть імена їх типів. Наприклад, наступна версія попередньої програми неправильна і компілюватиметься не буде. Справа в тому, що ім'я типу для аргументу, використовуваного при виконанні функції f1 (). відрізняється від імені типу її параметра.