我目前正在閱讀一本關於C編程算法的書,我注意到,當作者要聲明/創建一個結構對象,他這樣做(結構已經通過的方式定義):使用關鍵字「結構」來聲明結構對象,並在malloc
struct hashTable * h;
這:
struct hashTableNode ** table;
即使調用malloc時,他這樣做:
h = malloc(sizeof(struct hashTable));
所以當我編寫代碼時,我嘗試了在上面的聲明中沒有使用'struct'這個詞來看它是否仍然有效,因爲這些結構已經被定義了。當然,他們確實工作。所以我的問題是爲什麼這些聲明中需要'struct',因爲它只是使得代碼行更長。這是絕對必要的嗎?還是隻是一些'安全'的技術,使代碼更兼容?
您是使用真正的C編譯器還是實際使用C++編譯器? –
我使用visual studio,所以我猜C++? –
如果你想學習實際的C我建議使用C編譯器。在C和C++中,引用結構體的方式是不同的 - 儘管有些人總是用C語言結構化它們的結構體,所以他們不必繼續輸入'struct',即'typedef struct'成語。 –