C言語(C++も)は歴史上の経緯でintやlong等の型は何bitと明確にサイズは決まっていません。
long longは言語仕様上は64bit以上と定めているだけで環境によって128bitなどサイズが異なる処理系があるかもしれません
対してint64_tは64bitと決まってます。
計算量などの違いは基本的にありません。一般的には最終的にプリプロセッサによってint64_tはlong longやlongにまたは逆に変換され統一されます(どうするかは処理系次第)
じゃあint64_tみたいにサイズ決まっている型のほうがいいじゃんとなりそうですが、
過去の名残でサイズの不定なintやlongに依存する関数(printfとか)やsuffix(0Lとか)なんかがint64_tみたいなサイズ固定の型と食い違ってると未定義動作になりかねないのでそれもまた面倒
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/11 18:05