Книга: Язык Си - руководство для начинающих
Использование адреса структуры
Использование адреса структуры
Мы будем решать ту же самую задачу, что и прежде, но при этом использовать адрес структуры в качестве аргумента. Это хорошо, поскольку адрес представляет собой только одно число. Так как функция должна работать со структурой funds, она тоже должна использовать шаблон funds. См. рис. 14.7.
/* передача адреса структуры в функцию */
struct funds {
char *bank;
float bankfund;
char *save;
float savefund;
} stan = {
"Банк синьора Помидора" ,
1023.43,
" Сбережения и займы Снупи" ,
4239.87
};
main( )
{
float total, sum( );
printf(" У Стэна всего %.2f долл.n", sum(&stan) );
}
float sum (money)
struct funds *money;
}
return( money-> bankfund + money-> savefund);
}
PИC. 14.7. Программа, передающая функции адрес структуры. Эта программа тоже выдает
У Стэна всего 5263.30 долл.
Функция sum( ) имеет указатель (money) на структуру fund. Передача адреса &stan в функцию заставляет указатель money ссылаться на структуру stan. Затем используем операцию - > для получения значений элементов stan.bankfund и stan.savefund.
Эта функция также имеет доступ к названиям учреждений, хотя их не использует. Заметим, что мы должны применять операцию & для получения адреса структуры. В отличие от имени массива имя структуры само по себе нe является синонимом своего адреса.
Наш следующий способ применим к массивам структур и является вариантом данного способа.
- Задание адреса следующего транзитного узла
- Использование элементов структуры
- Использование массива
- Восстановление с использованием инструмента gbak
- Типы страниц и их использование
- Использование констант
- Использование переменной окружения ISC_PATH
- Использование сервера Yaffil внутри процесса
- Использование CAST() с типами дата
- Использование типов содержимого и столбцов
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- Использование кнопки Автосумма