Заполнение структуры, расположенной в одной функции, в другой функции - C (СИ)
Формулировка задачи:
Здравствуйте. В программе на СИ необходимо осуществить что то подобное. нужна помощь.
int main()
{struct s{int a, b} /*некая абстрактная структура*/
return 0;}
void f(){/*в этой функции необходимо осуществить заполнение структуры, расположенной в main*/}Решение задачи: «Заполнение структуры, расположенной в одной функции, в другой функции»
textual
include
include
Листинг программы
//main.c
#include "file.h"
int main()
{
struct s s1;
f(&s1);
return 0;
}
Объяснение кода листинга программы
//file.h
ifndef FILE_H
define FILE_H
struct s { int a; char b; }; void f(struct s*);
endif
//file.c
include file.h
void f(struct s* s) { s->a = 5; s->b = 'a'; } //main.c
include file.h
int main() { struct s s1; f(&s1); return 0; } В этом коде:
- Объявлена структура
sв файлеfile.h. - В функции
fуказатель на структуруsпередается как аргумент. - Внутри функции
fполя структурыsинициализируются значениями5и'a'. - В функции
mainсоздается экземпляр структурыsс именемs1. - Функция
fвызывается с аргументом&s1, при этом в функцию передается указатель наs1. - В функции
mainвозвращается0, что означает успешный конец работы программы.