close

You can return a structure from a function (or use the = operator) without any problems. It's a well-defined part of the language. The only problem with struct b = a is that you didn't provide a complete type. struct MyObj b = a will work just fine. You can pass structures to functions as well - a structure is exactly the same as any built-in type for purposes of parameter passing, return values, and assignment.

Here's a simple demonstration program that does all three - passes a structure as a parameter, returns a structure from a function, and uses structures in assignment statements:

#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;
}

The next example is pretty much exactly the same, but uses the built-in int type for demonstration purposes. The two programs have the same behaviour with respect to pass-by-value for parameter passing, assignment, etc.:

#include <stdio.h>

int f(int x) 
{
  int r = x;
  return r;
}

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

 

 

 

```````````````

 

 

 

 

struct commit 型態

 

 

 

struct commit *lookup_commit_reference_gently(const struct object_id *oid,
  int quiet)
  {
  struct object *obj = deref_tag(parse_object(oid), NULL, 0);
   
  if (!obj)
  return NULL;
  return object_as_type(obj, OBJ_COMMIT, quiet);
  }
arrow
arrow
    全站熱搜

    學習程式 發表在 痞客邦 留言(0) 人氣()