2012-11-05 68 views
2

假設我有一個struct,其中一個字段x也是一個struct(不是指向struct的指針)。設置一個等於一個值的結構

如果我說object.x = 0,實際情況下發生了什麼?

+3

你能發佈一些可編譯的示例代碼嗎?如果'x'是一個結構體,'object.x = 0'將不會編譯。 –

回答

1

它不起作用。你會得到一個不兼容類型的錯誤,如下所示:

incompatible types when assigning to type ‘struct X’ from type ‘int’. 
+0

Nahuel Fouilleul錯了。 – alk

+0

@alk:謝謝。編輯:) – Jack

2

我認爲它不會編譯,但我不能在此刻檢查,但

object.x = {0}; 

應初始化所有字段爲0

UPDATE

以前沒有編譯,因爲這隻能在聲明,但以下是好的

object.X = (struct struct1) {0}; 

這是相當於

{ 
    struct struct1 temp = {0}; 
    object.X = temp; 
} 
+1

當x是結構體時將不會編譯 –

+1

您可以使用C99複合文字。 'object.x =((struct X){0});' –

2

你會得到一個編譯錯誤。

error: incompatible types in assignment 

您不能將int分配給結構變量。

相關問題