Re: [問題] 建議使用stdint.h嗎?
※ 引述《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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章