สร้างEXTERNAL FILEเหมือนไฟล์หลายไฟล์ในโปรเจค
10/3/2557 SONGCHAI PRAPATRUNGSEE
สร้างEXTERNAL FILEเหมือนไฟล์หลายไฟล์ในโปรเจค
1 สร้างไฟล์หลักขึ้นมาก่อนแล้วคอมไพล์ให้ผ่านก่อน
และไฟล์หลักจะต้องมีการสร้างฟังชันไว้
เพราะEXTERNAL
FILEหรือไฟล์ย่อย
คือฟังชันของไฟล์หลักนั่นเอง
2 คลิกFILE/NEW/FILE/SAVE
AS
3 ที่ช่องFILE NAMEพิมพ์ชื่อตามด้วย.C (C
SOURCE FILE)
4 คลิกSAVE
5 คลิกขวาSOURCE GROUP1
6 คลิกADD EXISTING FILES
7 ดับเบิลคลิกชื่อไฟล์ที่เราตั้งชื่อไว้
หรือพิมพ์ชื่อไฟล์ที่ช่องFILE
NAMEแล้วคลิกADD
เท่านี้ไฟล์ย่อยก็เข้าไปในSOURCE
GROUP1แล้ว
8 คลิกCLOSE
9 COPY FUNCTION จากไฟล์หลักไปไว้ใน
EXTERNAL FILEหรือไฟล์ย่อย
ส่วนไฟล์หลักตัดให้เหลือเฉพาะส่วนหัวของฟังชัน
แล้วใส่เครื่องหมาย ; (STATEMENT) จบคำสั่ง
extern unsigned char SUB(unsigned char
i,j);
ส่วนนี้เรียกว่าFUNCTION
PROTOTYPEหรือฟังชันต้นแบบ
ไฟล์หลักจะเรียกใช้ไฟล์ย่อย
โดยการเรียกใช้ผ่านFUNCTION
PROTOTYPE เช่น
ไฟล์หลักหรือโปรแกรมหลัก
#include <REGX51.H>
extern unsigned char SUB(unsigned char
i,j);
void main(void){
unsigned
char k;
k=SUB(20,5);
}
EXTERN FILEหรือไฟล์ย่อยหรือโปรแกรมย่อย
unsigned char SUB(unsigned char i,j){
return
i-j;
}
คำอธิบาย โปรแกรม
#include
<REGX51.H>
# คือ เครื่องหมายSHARP เป็นพรีโปรเซสเซอร์ไดเรกทีฟ
( PREPROCESSOR
DIRECTIVE )
หมายความว่าเป็นคำสั่งประมวลผลก่อน
include =เอาไฟล์ภายนอกเข้ามาร่วมในการคอมไพล์(แปล)
หมายความว่าเวลากดBUILDหรือREBUILD
ก็จะเข้าไปทำการคอมไพล์(แปล)ในไฟล์ include ก่อน
จากนั้นจึงกลับมาคอมไพล์ต่อจากบรรทัดที่คอมไพล์ไปแล้ว
ให้เป็นไฟล์.HEX หรือเลขฐาน16
<REGX51.H> = ชื่อที่ทางคอมไพล์เลอร์กำหนด
แทนตำแหน่งแอดเดรสของไมโครคอนโทรลเลอร์
เพื่อให้ง่ายต่อการจดจำและใช้งาน
.H คือไฟล์นามสกุล H FILE ไม่ใช่ HEX FILE
extern unsigned char SUB(unsigned char
i,j);
=FUNCTION PROTOTYPEหรือฟังชันต้นแบบ
ไฟล์หลักจะเรืยกใช้ EXTERNAL FILEหรือไฟล์ย่อย
โดยการเรียกใช้ผ่าน FUNCTION PROTOTYPE
หรือฟังชันต้นแบบ
extern=ไฟล์จากภายนอกจะเขียนหรือไม่เขียนก็ได้
unsigned char =มีOUTPUT(RETURN TYPE)
เป็นชนิดตัวแปรมีค่าอยู่ในช่วง0-255=256ค่า
SUB = ชื่อฟังชันที่ตั้งขึ้นเอง
( unsigned
char i , j );
หมายความว่ามี INPUT(ARGUMENTS)
i และ j คือตัวแปรที่ตั้งชื่อขื้นเอง
มีค่าอยู่ในช่วงชนิดตัวแปร unsigned char
คือ0-255=256ค่า
{…..} = ขอบเขตการทำงานของฟังชัน
Return i-j;
หมายความว่า i-j แล้วเก็บผลลัพท์ไว้ใน i
return คือคำสั่งย้อนกลับหมายถึงเอาผลลัพท์ของ i-j
ย้อนกลับไปให้OUTPUT(RETURN
TYPE)ของฟังชันSUB
หมายความว่าฟังชันSUBมีค่าเท่ากับผลลัพท์ของ i-j
void main(void)
void =ไม่มี OUTPUT(RETURN TYPE)
main = FUNCTION
NAME, main=ชื่อฟังค์ชันหลัก
(void) =ไม่มี INPUT(ARGUMENTS)
{….} คือวงเล็บปีกกา เป็นLOOPหรือขอบเขตของการทำงาน
unsigned char k;
หมายถึงกาประกาศตัวแปรk ที่ตั้งชื่อขึ้นเอง
ให้มีค่าอยู่ในช่วง unsigned char=0-255=256ค่า
k=SUB(20,5);
หมายความว่าเอาค่าผลลัพท์ในฟังชันSUBไปเก็บไว้ในตัวแปรk
20,5 = 20เก็บไว้ในตัวแปร i, 5เก็บไว้ในตัวแปร j
หลังจากจบบรรทัดนี้ก็เข้าสู่โหมดประหยัดพลังงาน
คืออยู่เฉยๆไม่ทำอะไร
ความหมายของWARNING
referrence made to unresolved external
แปลว่าการอ้างอิงจากภายนอกยังไม่ได้ทำ
unresolved external symbol
สัญลักษณ์จากภายนอกยังไม่ได้ทำ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น