考虑以下代码:
#include<iostream>
using namespace std;
class A
{
public:
A() {cout << "1";}
A(const A &obj) {cout << "2";}
};
class B: virtual A
{
public:
B() {cout << "3";}
B(const B & obj) {cout<< "4";}
};
class C: virtual A
{
public:
C() {cout << "5";}
C(const C & obj) {cout << "6";}
};
class D:B,C
{
public:
D() {cout << "7";}
D(const D & obj) {cout << "8";}
};
int main()
{
D d1;
cout << "\n";
D …Run Code Online (Sandbox Code Playgroud) c++ copy-constructor virtual-inheritance private-inheritance ctor-initializer
在32位计算机中,一个内存读取周期获取4 bytes个数据。
因此要读取下面的缓冲区,读取下面提到的128个缓冲区应该花费32个读周期bytes。
char buffer[128];
Run Code Online (Sandbox Code Playgroud)
现在,假设如果我按如下所述对齐了该缓冲区,那么请让我知道它将如何使其更快地读取?
alignas(128) char buffer[128];
Run Code Online (Sandbox Code Playgroud)
我假设内存读取周期将仅保留4个字节。