2016年11月8日 星期二

資源-資工-Return struct by function

文章出處:Return a `struct` from a function in C
關鍵字:c return struct

這才是正確寫法

#include <stdio.h>

struct a {
   int i;
};

struct a f(struct a x)
{
   struct a r = x;
   return r;
}

int main(void)
{
   struct a x = { 12 };
   struct a y = f(x);
   printf("%d\n", y.i);
   return 0;
}

資源-資工-function in structure

原文出處:C - function inside struct

我每次都會忘記這種做法,忘一次,查一次。乾脆寫在部落格。

typedef struct client_t client_t, *pno;
struct client_t
{
        pid_t pid;
        char password[TAM_MAX]; // -> 50 chars
        pno next;

        pno (*AddClient)(client_t *);    
};

pno client_t_AddClient(client_t *self) { /* code */ }

int main()
{

    client_t client;
    client.AddClient = client_t_AddClient; // probably really done in some init fn

    //code ..

    client.AddClient(&client);

}