int、unsigned int、uint_fastN_t 和 int_fastN_t 的优缺点是什么?

问题描述 投票:0回答:1

我有一个变量,类型并不重要;可能的范围很容易适合上述任何类型。例如循环计数器。等等

使用的优点和缺点是什么:

  • int
  • unsigned int
  • int_fastN_t
  • uint_fastN_t

任何潜在的接近投票者请注意:我不是问使用哪一个,因为那是基于意见的,但我问的是,在选择一个而不是另一个时我应该考虑哪些因素?

c performance integer micro-optimization
1个回答
0
投票

以下是做出选择时需要考虑的一些因素:

  • 如果边界是整数文字,请使用经典

    for (int i = 0; i < 10; i++) { 
        ...
    }
    

    原理:越简单越好。

  • 如果边界是变量,请使用与边界相同的类型。

    size_t len = strlen(s);
    for (size_t i = 0; i < len; i++) {
        ...
    }
    
  • 如果边界可能超出

    int
    的范围,请使用更大的类型:
    long
    int64_t
    ...使用
    int_fastN_t
    int_leastN_t
    会使代码更难以阅读,并且不会产生任何影响在大多数架构上。

© www.soinside.com 2019 - 2024. All rights reserved.