我遇到了一些我不太明白的C代碼。以下編譯和運行很好。 1)爲什麼我可以將char *轉換爲結構體* 2)使用這個成語而不是void *有什麼好處?char * ptr結構
struct foo
{
int a;
int b;
char *nextPtr;
};
. . .
// This seems wrong
char *charPtr = NULL;
// Why not
//void *structPtr = NULL;
struct foo *fooPtr;
fooPtr = (struct foo*)charPtr;
//編輯刪除字符串部分,因爲這不是問題的重點。
什麼是'string'?這是C還是C++? – dirkgently
你可以使用C風格轉換語法將任何東西轉換爲任何東西。編譯器只是相信你。在'void *'的發明之前有一段時間用'char *'來代替,但那段時間早已過去。 – Flexo
對不起,C++如果這是相關的。 – LeviX