ประโยชน์ของ 'static' ที่โปรแกรมเมอร์ทุกคนควรรู้
การใช้คีย์เวิร์ด 'static' เป็นส่วนหนึ่งของการเขียนโปรแกรมที่มีประสิทธิภาพและมีโครงสร้างที่มั่นคง เป็นสิ่งที่โปรแกรมเมอร์ควรรู้และเข้าใจอย่างดี เพื่อให้สามารถนำมาใช้ในการพัฒนาโปรแกรมได้อย่างเต็มประสิทธิภาพ. ในบทความนี้, เราจะสำรวจประโยชน์ที่มีจากการใช้ 'static' พร้อมกับตัวอย่างโค้ดที่สามารถประกอบความเข้าใจได้.
การใช้ 'static' ในภาษาโปรแกรมช่วยให้ค่าของตัวแปรถูกเก็บไว้แบบถาวร นั่นหมายความว่าค่านั้นๆ จะไม่หายไปเมื่อฟังก์ชันทำงานเสร็จ ซึ่งมีประโยชน์ในกรณีที่ต้องการเก็บข้อมูลระหว่างการเรียกใช้ฟังก์ชันหลายครั้ง.
#include
void countCalls() {
static int callCount = 0;
callCount++;
std::cout << "Function called: " << callCount << " times." << std::endl;
}
int main() {
countCalls(); // Output: Function called: 1 times.
countCalls(); // Output: Function called: 2 times.
countCalls(); // Output: Function called: 3 times.
return 0;
}
การใช้ 'static' ในกรณีที่ต้องการแชร์ข้อมูลระหว่าง instance ของ class หรือ object ทั้งหมด สามารถทำให้การจัดการข้อมูลที่ใช้ร่วมกันได้ง่ายและมีประสิทธิภาพ.
#include
class SharedData {
public:
static int sharedValue;
};
int SharedData::sharedValue = 0;
int main() {
SharedData obj1;
SharedData obj2;
obj1.sharedValue = 5;
std::cout << obj2.sharedValue << std::endl; // Output: 5
return 0;
}
การใช้ 'static' ภายในฟังก์ชันทำให้ตัวแปรนั้นๆ ไม่ถูกทำลายเมื่อฟังก์ชันทำงานเสร็จ, และยังสามารถเก็บค่าไว้ระหว่างการเรียกใช้ฟังก์ชันต่างๆ.
#include
int calculateSum(int num) {
static int sum = 0;
sum += num;
return sum;
}
int main() {
std::cout << calculateSum(5) << std::endl; // Output: 5
std::cout << calculateSum(3) << std::endl; // Output: 8
std::cout << calculateSum(7) << std::endl; // Output: 15
return 0;
}
การใช้ 'static' ในโปรแกรมมีประโยชน์มากมาย, เช่นการเก็บค่าแบบถาวร, การแชร์ข้อมูล, และการใช้ในภายในฟังก์ชัน. การเข้าใจและนำไปใช้ 'static' อย่างถูกต้องสามารถช่วยให้โปรแกรมมเมอร์สามารถพัฒนาโปรแกรมได้อย่างมีประสิทธิภาพและมั่นคง.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM