Tôi muốn chuyển đổi số từ định dạng char * sang số nguyên int32_t 32 bit, nhưng strtol() trả về dài.Cách để chuyển đổi số char * thành int32_t
Tôi không biết thời lượng dài trên máy của mình. Nó có thể là 32 hoặc 64 bit hoặc cái gì đó khác trong tương lai.
Cách chính xác và chống đạn để chuyển đổi chuỗi thành số nguyên 32 bit int32_t là gì? Hoặc để chuyển đổi dài thành int32_t.
So sánh với hằng số _MAX và _MIN là cách duy nhất và đơn giản nhất?
Có gì sai với 'sprintf ("% i ", ...)'? Nó không tự động xử lý các hệ thống 32/64-bit đúng cách? – Polynomial
Đa thức, vấn đề là% i không tương ứng với int32_t. Dù sao, câu trả lời đúng là dưới đây. –