ฟังก์ชันสแตติกใน C คือฟังก์ชันที่มีขอบเขตจำกัดอยู่ที่ไฟล์อ็อบเจ็กต์ ซึ่งหมายความว่าฟังก์ชันสแตติกสามารถมองเห็นได้ในไฟล์อ็อบเจ็กต์เท่านั้น ฟังก์ชันสามารถประกาศเป็นฟังก์ชันสแตติกได้โดยวางคีย์เวิร์ดสแตติกไว้หน้าชื่อฟังก์ชัน
ยกตัวอย่างที่แสดงให้เห็นดังนี้ −
มีสองไฟล์ first_file.c และ second_file.c เนื้อหาของไฟล์เหล่านี้จะได้รับดังนี้ −
เนื้อหาของ first_file.c
static void staticFunc(void) { printf("Inside the static function staticFunc() "); }
เนื้อหาของ second_file.c
int main() { staticFunc(); return 0; }
ตอนนี้ หากโค้ดด้านบนถูกคอมไพล์แล้ว จะเกิดข้อผิดพลาด เช่น "การอ้างอิงที่ไม่ได้กำหนดไปยัง staticFunc()" สิ่งนี้เกิดขึ้นเนื่องจากฟังก์ชัน staticFunc() เป็นฟังก์ชันสแตติก และมองเห็นได้เฉพาะในไฟล์อ็อบเจ็กต์เท่านั้น
โปรแกรมที่แสดงฟังก์ชันคงที่ในภาษา C มีดังต่อไปนี้ -
ตัวอย่าง
#include <stdio.h> static void staticFunc(void){ printf("Inside the static function staticFunc() "); } int main() { staticFunc(); return 0; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −
Inside the static function staticFunc()
ในโปรแกรมข้างต้น ฟังก์ชัน staticFunc() คือฟังก์ชันสแตติกที่พิมพ์ ”Inside the static function staticFunc()” ฟังก์ชัน main() เรียก staticFunc() โปรแกรมนี้ทำงานอย่างถูกต้องเนื่องจากการเรียกใช้ฟังก์ชันสแตติกจากไฟล์อ็อบเจ็กต์ของตัวเองเท่านั้น