我在函数中有以下行来计算序列中'G'和'C'的数量:
count += (seq[i] == 'G' || seq[i] == 'C');
Run Code Online (Sandbox Code Playgroud)
编译器是否足够聪明,当他们看到'count + = 0'时他们没有做任何事情,或者他们真的会浪费时间'加'0?
通常
x += y;
Run Code Online (Sandbox Code Playgroud)
比...更快
if (y != 0) { x += y; }
Run Code Online (Sandbox Code Playgroud)
即使y = 0,因为第一个选项中没有分支.如果它真的很重要,你将不得不检查编译器输出,但不要认为你的方式更快,因为它有时不会添加.