经常检查返回类型是否有错误。但是,可以用不同的方式指定将继续执行的代码。

if(!ret)
{
   doNoErrorCode();
}
exit(1);


if(ret)
{
   exit(1);
}
doNoErrorCode();

单向重量级CPU可以使用简单的统计推测近邻/分支中的分支-我研究了一种用于分支推测的4位机制(-2,-1,0,+ 1,+ 2),其中零是未知的,2将被认为是真正的分支。
考虑到上面的简单技术,我的问题是如何构造代码。我认为在主要编译器和主要架构之间必须有一个约定。这是我的两个问题
当代码不是一个经常访问的循环时,在填充管道时哪个布尔值有偏差?
关于分支的推测必须从true、false或zero开始(管道必须填充某些内容)。可能是哪个?

最佳答案

CPU之间的行为各不相同,编译器经常重新排序指令。
您可以在这些手册中找到所需的所有信息:http://agner.org/optimize/
在我看来,知道发生了什么的唯一方法是读取编译器生成的汇编代码。

关于c - 保留执行管道,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1833253/

10-09 06:22
查看更多