Mid*_*das 0 c c++ optimization
什么需要最多的CPU:
int foo = 3;
Run Code Online (Sandbox Code Playgroud)
或者将它转换为unsigned int?
unsigned int foo = 3;
Run Code Online (Sandbox Code Playgroud)
Igo*_*aka 10
这是在MS VC 2005中生成的程序集:
; 9 : int foo = 3;
mov DWORD PTR _foo$[ebp], 3
; 10 : unsigned int bar = 3;
mov DWORD PTR _bar$[ebp], 3
Run Code Online (Sandbox Code Playgroud)
没有不同 :)
CPU使用率没有差异.
实际上,您几乎可以保证这些声明将编译为相同的代码.
唯一的区别是,编译器会记住这个变量是否是signed或unsigned,并决定如何实施操作诸如重载函数调用比较或决定.