2010-11-01 85 views
-2
SPI_SPI (char* p1, char* p2) 
{ 
    return (*(point*)p1 == *(point*)p2) ? '0' : 'F'; // epsilon 
} 

這是表明p1等級指向類指針,並給這個指針點類的指針..我是對嗎?在每種情況下,我都沒有得到指針,請向我推薦一個與之相關的有用鏈接......或者向我解釋這一點。需要指標幫助

+0

你到底想幹什麼? – 2010-11-01 05:04:04

+0

我想知道指針..我沒有得到這個函數..因爲我知道它顯示P1轉換爲點類指針,而不是Giev指針..我是對嗎? – piyapiya 2010-11-01 05:05:24

回答

1

即函數比較使用通過鑄造通過char*指針引用的點結構,用於point對象指定的比較的兩個點。

該代碼等於:

// casting char* to point* 
point* ptPointer1 = (point*)p1; 
point* ptPointer2 = (point*)p2; 

// extracting values 
point pt1 = *ptPointer1; 
point pt2 = *ptPointer2; 

// comparing by value 
return pt1 == pt2 ? '0' : 'F'; 
0

您正在比較p1指向的值(轉換爲點類)與p2指向的值(也轉換爲點類)。如果它們相等,則返回'0',否則返回'F'。你的函數沒有返回值,除非它包含在SPI_SPI中,這會使它成爲一個宏。這種宏觀使用強烈推薦(我至少)。另外,通常最好大寫類(Point)。

+0

它是什麼意思?*(point *)p1 – piyapiya 2010-11-01 05:07:54

+0

p1在char和我ma鑄造p1到點類和獲得我得到p1的指針.. – piyapiya 2010-11-01 05:08:49

+0

我認爲SPI_SPI在他的情況下必須是一個宏,它定義了一個Char ?這應該使它成爲一個有效的回報函數,不是嗎? – 2010-11-01 05:17:03

1

原始代碼:

SPI_SPI (char* p1, char* p2) 
{ 
    return (*(point*)p1 == *(point*)p2) ? '0' : 'F'; // epsilon 
} 

作爲一個普通的函數這一定義缺乏的結果類型,並且是無效的代碼。作爲構造函數,它試圖返回一個值,並且是無效的代碼。所以無論如何這是無效的代碼。

關於你的問題,我沒有解析它:這似乎是無稽之談。

乾杯&第h。,

+0

如果我猜測,我會說SPI_SPI是一個宏,它的計算結果是有效函數定義的開始。 – Splat 2010-11-13 02:07:46