русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Битовые поля


Дата добавления: 2013-12-24; просмотров: 733; Нарушение авторских прав


Указатели на структуры

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

План

Массивы структур

 

Для объявления массива структур следует сначала определить структуру, а затем объявить массив переменных данного типа. Например, для объявления 100-элементного массива структур типа addr, которая была ранее определена в данной лекции, следует написать:

 

struct addr addr_info[100];

 

Для доступа к отдельным структурам массива addr_info следует проиндексировать имя массива. Например, для вывода содержимого поля zip третьей структуры, следует написать:

printf(“%ld”, addr_info[2].zip);

Как и массивы переменных, массивы структур индексируются с 0.

1.Передача структур в функции

2.Указатели на структуры

3.Битовые поля

4.Объединения

5.Перечисления

6.Использование typedef

7.Ввод, вывод, потоки и файлы


При передаче членов структур в функции фактически передаётся значение члена. Следовательно, передаётся обычная переменная.

Когда же структура используется как аргумент функции, передается вся структура с помощью стандартной передачи по значению. Это означает, что любые изменения, внесенные в содержимое структуры внутри функции, не повлияют на структуру, используемую в качестве аргумента.

Если структуру нужно использовать как параметр, то лучше всего определить структуру глобально, а затем использовать ярлык для объявления необходимых структурных переменных и параметров. Например,

 


#include <stdio.h>

 

struct struct_type {

int a, b;

char ch;

};

 

void f1(struct struct_type parm);

 

int main(void)

{

struct struct_type arg;

arg.a = 1000;

f1(arg);

 

return 0;

}



void f1(struct struct_type parm)

{

printf("%d", parm.a);

}



 

Данная программа выводит число 1000 на экран.

 

Язык С позволяет создавать указатели на структуры так же, как и на другие типы переменных.

Для доступа к членам структуры с помощью указателя на структуру следует использовать оператор «стрелка» ->.


Пример:

 

struct bal {

float balance;

char name[80];

} person;

 

struct bal *p;

 

p = &person;

 

p->balance = 0f;

 


 

1.Если ограничено место для хранения информации, можно сохранить несколько переменных в одном байте.

2.Некоторые интерфейсы устройств передают информацию, закодировав биты в один байт.

3.Некоторым процедурам кодирования необходимо получить доступ к отдельным битам в байте.

 

Стандартный вид объявления битовых полей следующий:

 

struct имя структуры {

тип имя1:длина;

тип имя2:длина;

тип имяN:длина;};

Пример

 

struct device {

unsigned active : 1;

unsigned ready : 1;

unsigned xmt_error : 1;

} dev_code;

 

Битовые поля имеют некоторые ограничения. Нельзя получить адрес переменной битового поля. Переменные битового поля не могут помещаться в массив. Переходя с компьютера на компьютер, нельзя быть уверенным в порядке следования бит (слева направо или справа налево). Любой код, использующий битовые поля, зависит от компьютера.




<== предыдущая лекция | следующая лекция ==>
Структуры | Консольный ввод-вывод


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.36 сек.