相关疑难解决方法(0)

什么是严格别名规则?

当询问C中常见的未定义行为时,灵魂比我提到的严格别名规则更加开明.
他们在说什么?

c strict-aliasing undefined-behavior type-punning

778
推荐指数
10
解决办法
19万
查看次数

LEA指令的目的是什么?

对我来说,它看起来像一个时髦的MOV.它的目的是什么,我什么时候应该使用它?

x86 assembly x86-64 x86-16

632
推荐指数
15
解决办法
54万
查看次数

movq汇编函数

我正在阅读一些代码并且不确定这行是做什么的:

movq (%rsp), %rsp
Run Code Online (Sandbox Code Playgroud)

assembly x86-64 att

22
推荐指数
2
解决办法
4万
查看次数

复制循环的效率是否低于memcpy()?

我开始研究IT,现在我和朋友讨论这段代码是否效率低下.

// const char *pName
// char *m_pName = nullptr;

for (int i = 0; i < strlen(pName); i++)
    m_pName[i] = pName[i];
Run Code Online (Sandbox Code Playgroud)

他声称例如memcopy会像上面的for循环那样做.我不知道这是不是真的,我不相信.

如果有更有效的方法或者效率低下,请告诉我原因!

提前致谢!

c++ performance loops memcpy strlen

3
推荐指数
2
解决办法
2279
查看次数

在C ++中,当在循环中多次使用数组的元素时,将其分配给另一个元素更好吗?

假设我有一个循环,可以对数组做一些数学运算x。是在每次迭代中在循环内分配一个临时double还是更好,还是应该array[i]每次都使用?

更好的是,我的意思是使用C ++在性能方面。我想知道C ++是否破坏了某些矢量化或现金优化?

另外,如果我使用此数组调用函数,并且可能需要多次使用函数值,该怎么办,所以通常对函数也是如此。我认为这比多次调用该函数要好。

如果循环使用怎么样omp parallel,我认为这应该是安全的,正确的?

for(int i=0; i<N; i++){
    double xi = X[i];
    double fi = f(xi);
    t[i] = xi*xi + fi + xi/fi;
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays loops vectorization

0
推荐指数
1
解决办法
96
查看次数