我们的组织有一个必要的编码规则(没有任何解释):
if ... else如果构造应该用else子句终止
例1:
if ( x < 0 )
{
x = 0;
} /* else not needed */
Run Code Online (Sandbox Code Playgroud)
例2:
if ( x < 0 )
{
x = 0;
}
else if ( y < 0 )
{
x = 3;
}
else /* this else clause is required, even if the */
{ /* programmer expects this will never be reached */
/* no change in value of x */
}
Run Code Online (Sandbox Code Playgroud)
这个设计要处理的边缘情况是什么?
关于其原因的另一个问题是,示例1 …
我正在寻找在512或更多字节的大缓冲区上popcount的最快方法.我可以保证任何所需的对齐,缓冲区大小总是2的幂.缓冲区对应于块分配,因此通常位是全部设置,没有设置,或者大多数设置有利于缓冲区的"左",偶尔出洞.
我考虑过的一些解决方案是:
我对最快的解决方案感兴趣,它必须适用于属于core2或更近的32位x86芯片组.SSE和SIMD非常感兴趣.我将在以下四核CPU上进行测试:
matt@stanley:~/anacrolix/public/stackoverflow$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
stepping : 11
cpu MHz : 1600.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : …Run Code Online (Sandbox Code Playgroud) 想象一下,一台普通计算机不间断地密集工作 5 年。CPU 始终以 100% 的速度工作,并不断读取和写入内存。计算机真的不会犯一个错误吗?
我通常是木材工人,而不是开发商。我正在学习用于嵌入式系统的C / C ++,同时尝试使我的某些工具具有自治性,从而节省了我的重复工作时间。
就目前而言,它的乐趣和进展顺利,我可能已经花了一百个小时进行编码/学习,并且已经节省了更多时间*。
我想继续前进,购买和遵循MISRA编码规则是“强制性好主意”吗?MISRA包含什么?仅编码规则,还是使它更安全的提示?
这些工具可能很危险(毕竟它们会砍柴,而人体的抵抗力要差得多……)。
注意:我显然分四个步骤进行测试:
只需运行OSD和SD卡记录器的图片即可(有一天,我将使用Anylze工具,并停止阅读它们)。
我没有插入任何工具
我在泡沫上使用软钻/刀具
我用手按紧急停止按钮在远处进行真实测试。
另外,我是唯一的员工,没有人可以访问我的工作场所。
*目前,我已经将钻头变成了一种3D木材打印机(完成了工作中不精确的部分),并将“切纸板”变成了自动化的打印机。
注意2:我不是母语人士,因此工具名称可能不正确。
c ×3
embedded ×2
misra ×2
architecture ×1
assembly ×1
c++ ×1
cpu ×1
memory ×1
optimization ×1
reliability ×1
templates ×1
x86 ×1