The difference of int8_t, int_least8_t and int_fast8_t?

前端 未结 5 1525
感情败类
感情败类 2020-11-27 03:07

What is the difference between the int types int8_t, int_least8_t and int_fast8_t?

5条回答
  •  轮回少年
    2020-11-27 03:43

    The difference is defined in the sections of the C99 standard that Carl Norum quoted. But it may be useful to have an example.

    Suppose you have a C compiler for a 36-bit system, with char = 9 bits, short = 18 bits, int = 36 bits, and long = 72 bits. Then

    • int8_t does not exist, because there is no way to satisfy the constraint of having exactly 8 value bits with no padding.
    • int_least8_t is a typedef of char. NOT of short or int, because the standard requires the smallest type with at least 8 bits.
    • int_fast8_t can be anything. It's likely to be a typedef of int if the "native" size is considered to be "fast".

提交回复
热议问题