c++ - int 与 unsigned char

标签 c++ c optimization

假设我们有一个运行 100 次的循环。使用 unsigned char 而不是 int 作为计数器有什么不同吗?还使用 i += 1U 而不是 i++ 吗?或者编译器会处理这个问题吗?

最佳答案

在简单的情况下,int vs unsigned char 为我提供相同的代码:

    for ( unsigned char i = 0; i < 100; ++i ) {
01081001  mov         esi,64h  
01081006  jmp         main+10h (1081010h)  
01081008  lea         esp,[esp]  
0108100F  nop  
        std::cout << 1 << std::endl;
01081010  mov         eax,dword ptr [__imp_std::endl (108204Ch)]  
01081015  mov         ecx,dword ptr [__imp_std::cout (1082050h)]  
0108101B  push        eax  
0108101C  push        1  
0108101E  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (1082044h)]  
01081024  mov         ecx,eax  
01081026  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (1082048h)]  
0108102C  dec         esi  
0108102D  jne         main+10h (1081010h)  
    }
    return 0; 

您应该分析您的代码,然后优化缓慢的部分。 不要以premature optimization开头.

关于c++ - int 与 unsigned char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3385528/

相关文章:

c - #ifdef#else #endif 宏问题

c - C 中连续元素的总和

java - 多目标优化Java

c++ - 有没有办法 Boost.Assign 一个 ptr_vector?

文本中的常量字数

javascript - 如何优化 DOM 插入循环

MySQL - INSERT 查询需要很长时间

c++ - 对 RGB 图像执行阈值操作

c++ - 一种为 c 执行 c++ "typedef struct foo foo;"的方法

c++ - 强制程序/线程使用 100% 的处理器资源