memcpy1.c
来自「用于进行gcc测试」· C语言 代码 · 共 80 行
C
80 行
// PR target/34403// Origin: Martin Michlmayr <tbm@cyrius.com>// { dg-do compile }// { dg-options "-O" }typedef unsigned char uint8_t;typedef uint8_t uint8;typedef long unsigned int size_t;class csVector2{public:float x;};class csBox2{};struct iBase{};struct iClipper2D:public virtual iBase{};template < class Class > class scfImplementation:public virtual iBase{};template < class Class, class I1 > class scfImplementation1:publicscfImplementation < Class >, public I1{};class csClipper:public scfImplementation1 < csClipper, iClipper2D >{};class csBoxClipper:public csClipper{ csBox2 region; virtual uint8 Clip (csVector2 * InPolygon, size_t InCount, csVector2 * OutPolygon, size_t & OutCount);};struct StatusOutputNone{};namespace CS{ template < typename BoxTest, typename StatusOutput > class BoxClipper { BoxTest boxTest; StatusOutput statOut; const csBox2 & region; csVector2 *InP; size_t InV; csVector2 *OutP; size_t OutV; public: BoxClipper (const BoxTest & boxTest, const StatusOutput & statOut, const csBox2 & region, csVector2 * InP, size_t InV, csVector2 * OutP):boxTest (boxTest), statOut (statOut), region (region), InP (InP), InV (InV), OutP (OutP), OutV (-1) { } uint8 Clip () { __builtin_memcpy (this->OutP, InP, OutV * sizeof (csVector2)); } };}struct BoxTestAll{};uint8csBoxClipper::Clip (csVector2 * InPolygon, size_t InCount, csVector2 * OutPolygon, size_t & OutCount){ BoxTestAll b; StatusOutputNone n; CS::BoxClipper < BoxTestAll, StatusOutputNone > boxClip (b, n, region, InPolygon, InCount, OutPolygon); uint8 Clipped = boxClip.Clip ();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?