0

func1(struct *ps) と func2(struct ps) という 2 つの関数を呼び出すコードを見ています。func1() は結果を ps が指す構造体に返し、それを使用して func2() を呼び出します。これはコードがどのように見えるか、

if(func1(&ps) && func2(ps)) 
{
<<do something>>
}

これはCコードです。func1() と func2() が呼び出される順序はコンパイラに依存していると確信しています。しかし、それでも専門家の意見が必要です。ありがとう。

4

1 に答える 1

2

ここでの順序は、func1(&ps)前に実行するように定義されていfunc2(ps)ます。オペレーターには、&&短絡と呼ばれる特性があります。左側が 0 まで実行されると、右側は決して実行されません。func1(&ps)したがって、前に実行されることが保証されますfunc2(ps)

于 2013-04-02T22:14:03.043 に答える