2017-12-14 19 views
0

私は理解できないsomeonesコードで何かを見ました。それは返品声明で何を言いますか?右矢印は右矢印と同じです

ここ
static cell_ptr UD_self(cell_ptr c) { return c->U = c->D = c; } 

に定義されています。

struct cell_s; 
typedef struct cell_s *cell_ptr; 
struct cell_s { 
    cell_ptr U, D, L, R; 
    int n; 
    union { 
     cell_ptr c; 
     int s; 
    }; 
}; 
+2

これはどの言語ですか? – Yashas

+2

たとえ構文的に有効であっても、それは醜いコードです。 2つの代入を行い、代入された値を返します(この場合は 'c')。現代のコンパイラは非常に優れており、 'c-> D = c; c→U = c;戻り値c; – Ronald

答えて

1

それがこれを書いているだけの簡単な方法です:

{ 
    c->D = c; 
    c->U = c->D; 
    return c->U; 
} 

文がreturn c->U = c->D = c;作品、それがちょうど割り当てられた値を返します=代入演算子ので、 。この値は、次の割り当てで使用されます。右から左に関連付けられるので、意味するreturn (c->U = (c->D = c));

関連する問題