Может кто-нибудь сказать мне преимущества или недостатки следующих двух фрагментов кода C?У меня есть int x
, к которому мне нужно получить доступ из нескольких функций.Лучше ли использовать его в качестве ссылочного параметра (фрагмент 1) или в качестве глобальной переменной (фрагмент 2)?
1-й фрагмент:
struct A {
int x;
};
void init( struct A * a ) {
a->x = 0;
}
void incx( struct A * a ) {
a->x++;
}
int main(void) {
struct A a;
init(&a);
incx(&a);
return 0;
}
2-й фрагмент:
int x;
void init() {
x = 0;
}
void incx() {
x++;
}
int main(void) {
init();
incx();
return 0;
}