2011-03-08 95 views
2

我一直在尋找一種方法來理解命名等價與結構等價,我發現的所有東西都有Ada,ALGOL或者Pascal的例子。我更多的是C#/ Java/C++開發人員,所以他們的例子沒有涉及到我。我不知道我是對的,但是這是我怎麼想它的工作原理:命名等價與等價結構之間的區別?

struct One { 
    int X; 
    double Y; 
} 

struct Two { 
    int J; 
    double K; 
} 

One A = new One(); 
Two B = new Two(); 

要我(可能有缺陷)的理解,A和B是不點名等價,但它們在結構上是等價的。

我對不對?脫節的方式?任何數量的幫助都會有很長的路要走。我甚至可能需要幫助,即使正確地說出問題...

回答

2

你對這件事很滿意。 這就是它所有的實際。

C沒有結構等價,它只支持名稱等價。 代碼像

if (A == B) 

會給你一個錯誤的不支持結構等價語言。

這不是一個很大的答案,你已經走上了正軌。