我需要初始化一个变量并测试它的值。 做到这一点最有效的方法是什么?
char *key = get_key(item);
if (key != NULL) { // do something }
或者
char *key;
if (key = get_key(item)) { // do something }
副作用是否会带来一些好处? 谢谢!
最佳答案
啊,好,“最有效的方法”... 不。没有。忘记效率。
即使存在差异,这很可能是过早的优化。但在这种特殊情况下,唯一的区别在于术语(从技术上讲,您的第二个示例不是初始化,而是赋值表达式),并且您的编译器几乎肯定会从这两段代码中生成完全相同的汇编程序。
关于c - 声明时初始化和下一步初始化有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17814857/