При использовании структур в функциях я пришел с двумя способами передачи их в качестве аргументов, и я не знаю, какой из них лучше использовать.
#include <stdio.h>
typedef struct Person{
int age;
int id;
} person;
static void foo(person *p1);
int main()
{
person per1;
person per2[1];
foo(&per1); /*1*/
foo(per2); /*2*/
printf("per1. Age: %i; id: %i\n",per1.age,per1.id);
printf("per2. Age: %i; id: %i\n",per2->age,per2->id);
return 0;
}
static void foo(person *p1)
{
p1->age=10;
p1->id=123;
}
Вариант использования для только один экземпляр структуры .Если требуется не более одного, какой из них лучше, с точки зрения производительности и смысла использования, передачи адреса объявления общей структуры или передачи унитарного массива структуры, который будет распадаться на указатель?