typedef struct Value{
int id;
char type;
char a;
} Value;
void fooV(Value v){
v.id = 10;
v.type = 'L';
v.a = 'R';
}
int main(void){
Value v;
Pointer p;
int id = 5;
char type = 't';
char a = 'a';
printf("id: %d, type: %c, a: %c \n",id,type,a);
v.a = a;
v.id = id;
v.type = type;
fooV(v);
printf("id: %d, type: %c, a: %c \n",id,type,a);
}
на вызове fooV, создается Локальное переменное значение ... поэтому никаких данных вызывающий не будут обновляться Но что, если я хочу, чтобы вернуть значения из fooV? что я должен добавить в fooV? Благодарявозвращаемых значений из структуры
Просто примечание: структуры, как и все остальное на C, передаются по значению. Значение struct может быть огромным (в терминах 'sizeof struct'), поэтому прохождение указателей на структуры является хорошей привычкой. – pmg