Я пытаюсь передать структуру функции, но функция, которой я передаю структуру, находится внутри другого файла .c.
Когда я запускаю debug, адрес структуры в другом файле отличается, поэтому переменные не обновляются в принимающей функции. Причина, по которой я делаю это, заключается в том, что в моей программе есть различные меню, и я хочу иметь отдельный файл для каждого меню.
внутри файла defs.h
typedef struct{
byte min;
byte max;
}menuOptionValue_s;
внутри файла menu.h
void draw_menuOption(menuOptionValue_s);
внутри файла menu.c
#include "defs.h"
#include "menu.h"
void draw_menuOption(menuOptionValue_s menu){
byte value = menu.max;
draw(x,y,value);
}
внутри файла settings.c
#include "defs.h"
#include "menu.h"
void setting_Init(void);
menuOptionValue_s setting;
menuOptionValue_s second_setting;
void setting_Init(void){
setting.max = 10;
setting.min = 1;
second_setting.max = 20;
second_setting.min = 11;
draw_menuOption(setting);
draw_menuOption(second_setting);
}
Я хочу иметь возможность вызывать draw_menuOption () из любого файла .c и передавать структуры в эти файлы .c
Код, который я предоставил, значительно сжался, setting_Init () вызывается один раз в main.c, а draw_menuOption (setting) вызывается из другой функции внутри setting.c, я просто хотел показать, что я на самом деле вызываю его.