-1
glib文檔缺少很多重要的東西,我認爲API文檔絕對應該包括這些東西。例如g_malloc的條目說沒有什麼關於它會在內存分配失敗時崩潰(與名稱暗示它模仿的標準malloc
的行爲形成直接對比)。只有當您發現有也一個名爲g_try_malloc變種,並閱讀其描述,你會被告知g_try_malloc
g_strdup在內存分配失敗時是否返回NULL?
嘗試分配n_bytes和失敗則返回NULL。使用g_malloc()對比 ,這會在失敗時中止程序。
現在對於這個問題,glib有一個函數g_strdup
,它也沒有提及可能返回NULL的任何內容。我認爲它不會,因爲它暗示它將在內部使用g_malloc。會嗎?
這篇文章的語氣是這樣的,我認爲投票結束,因爲有爭議和無建設性;也許你可以讓它少一點咆哮,並更多地堅持你的問題? – ptomato
API設計很困難(http://www.infoq.com/presentations/effective-api-design),但如果某些東西像鴨子一樣走路,說話像鴨子,但事實上卻是一隻鴿子,那是一種嚴重的失敗沒有將這個事實記錄在一個易於訪問的地方(即,與功能描述一起,而不是在其他地方顯示在
老虎警告內存處理頁面後面)「。 – hlovdal我不想爭論API設計或警告的位置。我同意這可能會更好,我理解你的挫敗感,我反對你的對立口吻,以及在你問實際問題之前漫長的漫不經心,Stack Overflow皺起眉頭,但是我沒有投票結束你的我甚至沒有降低它的效果,我認爲你發泄了一些我們都需要不時做的挫折,並且讓你編輯它,這個請求依然存在。 – ptomato