include<iostream> include<stdlib.h> defineCHECK2(condition,message)\ (!(condition))?(std::cerr<<"Assertionfailed:("<<condition<<"),"\ <<"function"<<__FUNCTION__<<",file"<<__FILE__<<",line"<<__LINE__<<"."<<std::endl\ <&...

  TcI6XFEQbses   2023年11月02日   177   0   0 C++

static_cast static_cast相当于C语言里面的强制转换,适用于: 用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。 把空指针转换成目标类型的空指针。 把任何类型的表达式转换成void类型。注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。 dynamic_c...

  TcI6XFEQbses   2023年11月02日   37   0   0 C++

GCCstruct内存对齐规则 结构体起始地址需要被其中成员类型最大的大小所整除; 每个成员起始地址需要被其类型大小所整除,如int32_t类型成员内存对齐到4B; 如果成员有子结构体,则该子结构体成员起始地址要被其内部成员类型最大的所整除。如structa里存有structb,b里有char,int,double等元素,那b应该从8的整数倍开始存储; 如果成员有数组,则该数组成员对齐依旧按POD类型,如uint8_tarr[4],其对齐依旧按1B; 如果成员有union,则按可以被union中子成员类型最大所整除处理; 整个结构体大小,必须要能被成员中类型最大所整除,不满足则GCC自动填充...

  TcI6XFEQbses   2023年11月02日   66   0   0 C++

本文主要翻译自ArmCortex-M7ProcessorTechnicalReferenceManualr1p2其中章节MemorySystem/L1caches/StoreBuffer。 StoreBuffer Cache中的数据,在写入memory或AXIM总线之前,先存放在storebuffer中。storebuffer有四个存储单元,每个存储单元由一个64bit数据存储及一个32bit地址存储组成。来自data-side的写请求都会存放在storebuffer中,但有两个例外:写往TCM或AHBP接口的数据。 注:名词解释浅谈嵌入式MCUCPU内核之ARMCortex-M7内核高性能(...

  TcI6XFEQbses   2023年11月01日   111   0   0 Linux
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~