Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

แอตทริบิวต์ ((ตัวสร้าง)) และแอตทริบิวต์ ((ตัวทำลาย)) ไวยากรณ์ใน C ในจุดสอน ?


ในที่นี้ เราจะมาดูวิธีการเขียนโค้ดที่มีฟังก์ชันสองฟังก์ชัน และฟังก์ชันหนึ่งจะถูกเรียกใช้งานก่อนฟังก์ชันหลัก และฟังก์ชันอื่นจะถูกเรียกใช้หลังจากฟังก์ชันหลัก คุณลักษณะเหล่านี้ใช้ในการทำงานเริ่มต้นบางอย่างก่อนที่จะดำเนินการหลัก และงานทำความสะอาดบางส่วนหลังจากดำเนินการหลัก

ในการทำงานนี้ เราต้องใส่แอตทริบิวต์สำหรับฟังก์ชันทั้งสองนี้ เมื่อแอ็ตทริบิวต์เป็นแอ็ตทริบิวต์ constructor แอ็ตทริบิวต์จะถูกดำเนินการก่อน main() และเมื่อแอ็ตทริบิวต์เป็นประเภท destructor แอ็ตทริบิวต์จะถูกดำเนินการหลังจาก main()

เรากำลังใช้ฟังก์ชัน GCC ฟังก์ชันคือ __attribute__() ในกรณีนี้ เราใช้สองตัวเลือกที่แตกต่างกัน Constructor และ Destructor ที่มีฟังก์ชัน __attribute__() ไวยากรณ์ __attribute__((constructor)) ใช้เพื่อเรียกใช้ฟังก์ชันเมื่อโปรแกรมเริ่มทำงาน และไวยากรณ์ __attribute__((destructor)) ถูกใช้เพื่อดำเนินการฟังก์ชันเมื่อฟังก์ชัน main() เสร็จสิ้น โปรดอ่านตัวอย่างเพื่อให้ได้แนวคิดที่ดีขึ้น

ตัวอย่าง

#include <stdio.h>
void before_main() __attribute__((constructor));
void after_main() __attribute__((destructor));
void before_main() {
   printf("This is executed before main.\n");
}
void after_main() {
   printf("This is executed after main.");
}
main() {
   printf("Inside main\n");
}

ผลลัพธ์

This is executed before main.
Inside main
This is executed after main.