Здравствуйте!
У меня вопрос больше академического характера Просьба отнестись к этому вопросу адекватно.
Скажем, мне надо производить какие-то действия и при этом данные, сопровождающие эти действия, хранятся в некоторой структуре и активно ими используются. При этом вряд ли будет создаваться больше одной переменной типа этой структуры.
у меня два варианта возможного дизайна. В первом я объявляю статическую перемнную типа структуры и при где-нибудь её инициализирую, а потом где-нибудь удаляю. При этом все функции пользуются только этой переменной.
Первый:
....
typedef struct {
...
...
} my_type_t;
static my_type_t my_var;
int create_my_var();
int release_my_var();
int do_something1();
int do_something2();
....
Во втором варианте я предоставляю пользователю завести переменную типа структуры и потом каждая функция получает её как параметер.
Второй:
....
typedef struct {
...
...
} my_type_t;
int create_my_var(my_type_t*);
int release_my_var(my_type_t*);
int do_something1(const my_type_t*);
int do_something2(const my_type_t*);
....
Вопрос: Есть ли какое-то преимущество одного из методов с точки зрения быстродействия?
Во втором варианте вроде бы более или менее понятно. При вызове функции адрес структуры помещается в регистер, вызывается цалл и функция берёт адрес из регистра.
Что происходит в первом варианте?