小编Sin*_* Gz的帖子

在 c 中复制数组与复制 int 的成本和性能

我正在阅读一本关于 c 的书,以下段落对我来说有点不清楚:

令人惊讶的是,在上面的例子中传递指针效率不高!这是因为 int 类型是 4 个字节,复制它比复制其指针的 8 个字节更有效。但对于结构和数组,情况并非如此。由于复制结构和数组是按字节完成的,并且其中的所有字节都应该一个一个地复制,因此通常最好传递指针。

据我所知,CPU 中的所有操作都仅限于算术位操作,所以

作者关于复制数组和结构的意思是什么,不是一个 int 复制位移操作?

第二:是指针数组吗?

注意:书名是Extreme C,由packT出版,下面的例子是作者所指的:

#include <stdio.h>
void func(int* a) {  
int b = 9;
*a = 5;  a = &b; 
}
int main(int argc, char** argv) {  
int x = 3;
int* xptr = &x;
printf("Value before call: %d\n", x);
printf("Pointer before function call: %p\n", (void*)xptr);  func(xptr);  
printf("Value after call: %d\n", x);
printf("Pointer after function call: %p\n", (void*)xptr);
return 0; 
}
Run Code Online (Sandbox Code Playgroud)

'''

c c++ arrays function data-structures

2
推荐指数
1
解决办法
126
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

data-structures ×1

function ×1