Re: [問題] 建議使用stdint.h嗎?

看板C_and_CPP (C/C++)作者 (網路黑貓)時間3年前 (2021/10/31 16:18), 3年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《wei115 (社畜)》之銘言: : 如題 : C99標準有stdint.h : 裡面定義了一些整數的確定大小,一定程度上保障可移植性 : 所以在我的理解中,使用int32_t會比使用int還要好 : 但我目前還沒看過用stdint.h的專案 : 有些專案是有要求整數的大小是確定的,但也沒用stdint.h,而是自己定義類型 : (ex. int32 uint32) : 我猜過是太長懶的用(int比int32_t打起來順手多了) : 但他們寧願用unsigned int也不用uint32_t,所以這個猜測也不對 : 最近要寫一個8bit MCU的專案 : 我自己的習慣是想用stdint.h,int的長度會很明確 : 編譯器有支援、不用合作、公司不怎麼管Coding Style : 這樣建議用stdint.h嗎?會有什麼隱患嗎? : 感謝 這類 types 對於 C++ 是自 C++11 開始定義在 cstdint 由此可見這在軟體開發有相當的需求與重要性 個人是站在建議這部份 主要原因是因為如果希望軟體能正確同時運作在 32/64 bit 主要差異在 long / size_t / pointer 這數者會有不同 特別是很多人過去習慣 long / int 混用, 並做一些預設的檢查 但這些者在 32bit / 64bit 架構下的寬度是不同的 推文中有人提到 "踩過雷" 就知道了 主要原因是很多時候工作是維護相關產品或是工具 讓軟體能編譯後在不同環境上使用很重要 另外是這樣做對於維護與移植上還是有幫助 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.110.208.161 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1635668320.A.657.html ※ 編輯: ChampYen (123.110.208.161 臺灣), 10/31/2021 16:20:33
文章代碼(AID): #1XVb5WPN (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1XVb5WPN (C_and_CPP)