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

Function-level static variables ถูก initialize เมื่อไหร่ใน C/C++


Static variables กำหนดด้วย static keyword เป็น variables ที่คงอยู่ใน memory ตลอดที่โปรแกรมรัน lifetime คือ entire program run ต่างจาก automatic variables ที่อยู่ใน memory เฉพาะตอนฟังก์ชันรัน และถูกทำลายตอนฟังก์ชันจบ

Function-level static variables ถูกสร้างและ initialize ครั้งแรกที่ถูกใช้งาน แม้ memory จะถูก allocate ตอน program load time

โปรแกรมสาธิต function-level static variables ใน C:

ตัวอย่าง

#include<stdio.h> int func() {    static int num = 0;    num += 5;    return num; } int main() {    for(int i = 0; i<5; i++) {       printf("%d\n", func());    }    return 0; }

ผลลัพธ์

The output of the above program is as follows.

5 10 15 20 25

เข้าใจโปรแกรมข้างต้น:

Function func() มี static variable num initialized เป็น 0 เพิ่ม num 5 แล้วคืนค่า Code snippet:

int func() {    static int num = 0;    num += 5;    return num; }

ใน main() เรียก func() 5 ครั้งด้วย for loop พิมพ์ค่าที่คืนมา เนื่องจาก num เป็น static อยู่ใน memory ตลอดโปรแกรม ค่าสม่ำเสมอ Code snippet:

int main() {    for(int i = 0; i<5; i++) {       printf("%d\n", func());    }    return 0; }