นี่เป็นวิธีการพื้นฐานในการสร้างไลบรารีเวกเตอร์/รายการทั่วไปใน C อย่างไรก็ตามคุณสังเกตเห็นว่า 'Pure C' ขัดแย้งกับส่วนขยายไฟล์ของฉันและใช่มีปัญหา แต่มันเป็นปัญหาที่เพิ่มขึ้นของคอมไพเลอร์
ใน GCC มีตัวระบุ typeof อยู่แล้วเพื่อให้คุณสามารถสร้างไฟล์ *.c โดยไม่มีปัญหาใด ๆ
โดยที่มันไม่ทำงานกับคอมไพเลอร์ MSVC MSVC ไม่มีตัวระบุ 'typeof' ซึ่งเป็นสิ่งที่ฉันใช้งานขึ้นอยู่กับตัวระบุประเภทและ dectype ไม่ได้ผลตามที่ฉันคาดไว้ ดังนั้นฉันจึงคิดออก static_cas <delctype (x)> เป็นวิธีแก้ปัญหา
typedef struct
-
ขนาด int;
ความจุ int;
ข้อมูลของ YourDatatype *;
} myDatavector;
สิ่งที่คุณต้องทำเขียนโครงสร้างข้อมูลเวกเตอร์ของคุณ หลังจากที่คุณสามารถใช้ฟังก์ชั่นเวกเตอร์ทั้งหมดในประเภทข้อมูลที่คุณกำหนดเองได้อย่างง่ายดาย
ตัวอย่าง: struct foo {.. } typedef foo foo; // ที่นี่เราจำเป็นต้องกำหนดโครงสร้างของเราเป็นรูปแบบใหม่เพื่อเรียกใช้ vectormaker อย่างถูกต้อง ...
CVectorCreateType (foo, myfoovector);
MyFoovector myVec = VectorCreate (myVEC); หรือ myfoovector myvec; VectorInit (MyVEC);
... แล้ว
องค์ประกอบของ YourDatatype; / * บางกระบวนการ / VectorAppend (VEC, Element) / บางกระบวนการ * / vectorsort (VEC, YourDatatypecomparator);