|
| 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | |
|
|
|
|
|
|
|
การเรียกใช้ฟังก์ชั่นใน C++ โดย C Language
ปรกติถ้าเรามีฟังก์ชั่นเป็นภาษาซี แล้วเราต้องนำไปใช้ใน C++ ตัวอย่างแบบนี้จะมีมากมาย
แต่ในทางกลับกัน ถ้าเราต้องการเอาฟังก์ชั่นใน C++ ไปใช้ในภาษาซีหละ หายากพอควรเลยแหละครับ
แต่วันนี้มีอาจารย์ดีสอนวิธีการนำไปใช้ ไม่ยากอย่างที่คิด และสามารถทำงานได้จริง
ผมจะสมมติว่าเรามีไฟล์ calc.cpp, calc.h แล้วก็ calculate.c
ใน calc.cpp สมมติว่ามีฟังก์ชั่น
void test(char a) { : : }
เราจะต้องแก้เป็น
extern "C" void test(char a) { : : }
สำหรับไฟล์ calc.h ส่วนมากเราจะประกาศ prototype ไว้ดังตัวอย่าง
void test(char a)
เราจะต้องแก้เป็น
#if __cplusplus extern "C" void test(char a); #else void test(char a); #endif
ส่วนสุดท้ายคือ ไฟล์ C ธรรมดานั่นเอง วิธีการเรียกใช้ จะประกาศใน header file ( *.h ) ก็ได้นะครับ จะได้เป็นหมวดหมู่ดี
วิธีประกาศคือ
extern void test(char a);
แค่นี้เราก็สามารถใช้งานฟังก์ชั่นที่สร้างใน CPP ได้แล้ว
แต่อย่างไรก็ตามตอน Build ก็ต้องระวังด้วย ถ้า Compiler ไม่สนับสนุน CPP จะคอมไพล์ไฟล์ CPP ไม่ได้ แล้วสุดท้ายก็จะมีปัญหาอีกนั่นเอง
Create Date : 19 กันยายน 2550 |
Last Update : 21 มีนาคม 2551 2:11:10 น. |
|
0 comments
|
Counter : 1650 Pageviews. |
|
|
|
|
|
|
|