ตัวแปรโกลบอลมักใช้ในโครงการภาษา C เพื่อแบ่งปันข้อมูลระหว่างหลายฟังก์ชัน มีขั้นตอนสำคัญหลายขั้นตอนในการกำหนดตัวแปรส่วนกลาง: การประกาศตัวแปรส่วนกลาง การเริ่มต้นตัวแปรส่วนกลาง การใช้คีย์เวิร์ด extern เพื่อเข้าถึงตัวแปรส่วนกลางในไฟล์อื่น และการหลีกเลี่ยงข้อขัดแย้งของตัวแปรส่วนกลาง ในระหว่างขั้นตอนที่สำคัญเหล่านี้ สิ่งสำคัญอย่างยิ่งคือต้องใช้คีย์เวิร์ด extern เพื่อเข้าถึงตัวแปรร่วมในไฟล์อื่นๆ สิ่งนี้ไม่เพียงช่วยในเรื่องการเขียนโปรแกรมแบบโมดูลาร์ของโปรเจ็กต์เท่านั้น แต่ยังปรับปรุงการนำโค้ดกลับมาใช้ใหม่และการบำรุงรักษาอีกด้วย ด้วยการกำหนดตัวแปรร่วมในไฟล์เดียวและใช้ extern เพื่อประกาศตัวแปรเดียวกันในไฟล์อื่นๆ ไฟล์หลายไฟล์จึงสามารถแชร์ตัวแปรร่วมได้โดยไม่ต้องกำหนดซ้ำๆ
ในภาษา C ตัวแปรโกลบอลคือตัวแปรที่กำหนดไว้นอกฟังก์ชันทั้งหมด และสามารถเข้าถึงได้ตลอดวงจรการทำงานของโปรแกรม เมื่อประกาศตัวแปรส่วนกลาง คุณเพียงแค่วางคำจำกัดความของตัวแปรไว้นอกฟังก์ชันทั้งหมด ตัวอย่างเช่น กำหนดตัวแปรโกลบอลเพื่อจัดเก็บความยาวสตริงสูงสุดที่ใช้ในโปรแกรมของคุณ:
#รวม <stdio.h>
int max_string_length = 255; // การประกาศตัวแปรทั่วโลกและการเริ่มต้น
ตัวแปรโกลบอลสามารถเริ่มต้นได้เมื่อมีการกำหนดไว้หรือสามารถกำหนดค่าได้ในระหว่างส่วนการเริ่มต้นของโปรแกรม ข้อผิดพลาดทั่วไปที่ผู้เริ่มต้นทำคือการกำหนดตัวแปรส่วนกลางเดียวกันซ้ำๆ ในหลายไฟล์ ซึ่งอาจทำให้เกิดข้อผิดพลาดในลิงก์ได้
ตัวแปรโกลบอลสามารถมองเห็นได้ตลอดทั้งโปรแกรม หลังจากกำหนดตัวแปรส่วนกลางแล้ว จะสามารถนำมาใช้โดยตรงในฟังก์ชันใดๆ โดยไม่ต้องมีการประกาศพิเศษใดๆ ตัวอย่างเช่น ใช้ตัวแปรร่วมด้านบนเพื่อตรวจสอบว่าสตริงเกินความยาวสูงสุดหรือไม่:
เป็นโมฆะ checkLength (ถ่าน * str) {
ถ้า (strlen (str) > max_string_length) {
printf(สตริงเกินความยาวสูงสุดn);
-
-
การใช้ตัวแปรร่วมสามารถทำให้การส่งพารามิเตอร์ง่ายขึ้น แต่การใช้มากเกินไปอาจทำให้โปรแกรมเข้าใจและบำรุงรักษาได้ยาก เนื่องจากส่วนใดๆ ของโปรแกรมสามารถแก้ไขได้ ซึ่งสามารถนำไปสู่ผลลัพธ์ที่ไม่คาดคิดได้
หากคุณต้องการใช้ตัวแปรโกลบอลตัวเดียวกันในหลายไฟล์ คุณจะต้องประกาศตัวแปรโดยใช้คีย์เวิร์ด extern ในไฟล์อื่นๆ ทั้งหมด ยกเว้นไฟล์ที่มีการกำหนดตัวแปรไว้ ตัวอย่างเช่น ตัวแปรโกลบอล after ถูกกำหนดไว้ในไฟล์:
int max_string_length = 255; // กำหนดไว้ใน file1.c
ก่อนที่จะใช้ในไฟล์อื่น file2.c จะต้องประกาศด้วย extern:
extern int max_string_length; // ใช้ใน file2.c
ด้วยวิธีนี้ ไฟล์หลายไฟล์สามารถแชร์ตัวแปรส่วนกลางเดียวกันได้โดยไม่มีข้อผิดพลาดในการกำหนดนิยามใหม่
เมื่อโปรเจ็กต์มีขนาดใหญ่ขึ้น นักพัฒนาที่แตกต่างกันอาจกำหนดตัวแปรส่วนกลางด้วยชื่อเดียวกันโดยไม่ตั้งใจ ทำให้เกิดความขัดแย้ง แนวทางปฏิบัติทั่วไปคือการใช้หลักการตั้งชื่อ เช่น การใช้ตัวย่อโปรเจ็กต์เป็นคำนำหน้าสำหรับชื่อตัวแปรโกลบอล เพื่อลดโอกาสที่ความขัดแย้งในการตั้งชื่อ นอกจากนี้ การลดการใช้ตัวแปรร่วมให้เหลือน้อยที่สุด การส่งข้อมูลผ่านพารามิเตอร์ฟังก์ชัน หรือการใช้ตัวแปรท้องถิ่นสามารถลดความเสี่ยงของความขัดแย้งของตัวแปรส่วนกลางได้อย่างมีประสิทธิภาพ
แม้ว่าตัวแปรส่วนกลางจะมีประโยชน์ในบางสถานการณ์ แต่การพึ่งพาตัวแปรเหล่านี้มากเกินไปอาจทำให้โครงการซอฟต์แวร์บำรุงรักษาได้ยาก ให้พิจารณาใช้ตัวแปรส่วนกลางแบบคงที่ การออกแบบโมดูลาร์ หรือรูปแบบการออกแบบซิงเกิลตันแทน ตัวแปรส่วนกลางแบบคงที่จะปรากฏเฉพาะในไฟล์ที่ถูกกำหนดไว้เท่านั้น ซึ่งจำกัดการรบกวนที่อาจเกิดขึ้น การออกแบบโมดูลาร์สนับสนุนการจัดระบบการทำงานที่เกี่ยวข้องให้เป็นโมดูลอิสระ ในขณะที่รูปแบบซิงเกิลตันจัดเตรียมกลไกที่อินสแตนซ์ของคลาสถูกจำกัดไว้เพียงอินสแตนซ์เดียว สิ่งเหล่านี้ใช้เพื่อจัดการทรัพยากรที่ใช้ร่วมกันในโครงการที่มีประสิทธิภาพ
โดยสรุป การใช้ตัวแปรส่วนกลางอย่างถูกต้องเป็นสิ่งสำคัญในการพัฒนาโครงการภาษา C การปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด เช่น การหลีกเลี่ยงข้อขัดแย้งของตัวแปรร่วม การใช้คีย์เวิร์ดภายนอกอย่างเหมาะสม และการพิจารณาทางเลือกอื่นนอกเหนือจากการใช้ตัวแปรร่วม สามารถช่วยให้นักพัฒนาจัดการฐานโค้ดขนาดใหญ่ และปรับปรุงการบำรุงรักษาโค้ดและความสามารถในการอ่านได้
1. ตัวแปรโกลบอลถูกกำหนดไว้ในโปรเจ็กต์ภาษา C อย่างไร ตัวแปรร่วมคือตัวแปรที่ประกาศภายนอกเนื้อหาของฟังก์ชัน และสามารถเข้าถึงและใช้ในฟังก์ชันใดก็ได้ตลอดทั้งโปรเจ็กต์ ในการกำหนดตัวแปรโกลบอลในโปรเจ็กต์ภาษา C คุณสามารถประกาศตัวแปรดังกล่าวภายนอกเนื้อหาของฟังก์ชัน หรือภายนอกฟังก์ชันใดก็ได้ ตัวอย่างเช่น คุณสามารถเพิ่มคำสั่งต่อไปนี้ที่จุดเริ่มต้นของไฟล์ต้นฉบับหรือในไฟล์ส่วนหัว:
int globalVariable; // ประกาศตัวแปรโกลบอลภายนอกเนื้อหาของฟังก์ชันตัวแปรร่วมที่กำหนดในลักษณะนี้สามารถเข้าถึงและแก้ไขโดยฟังก์ชันใดก็ได้ในโปรเจ็กต์
2. หน้าที่และข้อควรระวังของตัวแปรส่วนกลางในโครงการภาษา C คืออะไร? ตัวแปรส่วนกลางมีขอบเขตทั่วโลกและวงจรชีวิตของโปรเจ็กต์ภาษา C และสามารถแชร์ข้อมูลระหว่างฟังก์ชันต่างๆ ในโปรเจ็กต์ได้ สิ่งนี้มีประโยชน์เมื่อจำเป็นต้องส่งผ่านและแบ่งปันข้อมูลระหว่างฟังก์ชันต่างๆ อย่างไรก็ตาม มีบางสิ่งที่ควรทราบ:
ตัวแปรร่วมมีการมองเห็นสูง และสามารถเข้าถึงได้และแก้ไขโดยฟังก์ชันใดๆ ในโปรเจ็กต์ ดังนั้นจึงจำเป็นต้องใช้ด้วยความระมัดระวังเพื่อหลีกเลี่ยงการแก้ไขโดยไม่ตั้งใจ ตัวแปรโกลบอลสามารถเริ่มต้นได้เมื่อมีการประกาศเท่านั้น ไม่ใช่ภายในเนื้อหาของฟังก์ชัน หากคุณใช้ตัวแปรโกลบอลตัวเดียวกันในไฟล์ต้นฉบับหลายไฟล์ คุณจะต้องประกาศโดยใช้คีย์เวิร์ด extern เพื่อหลีกเลี่ยงคำจำกัดความที่ซ้ำกัน3. จะเข้าถึงและแก้ไขตัวแปรส่วนกลางในโครงการภาษา C ได้อย่างไร ในการเข้าถึงและแก้ไขตัวแปรร่วมในโปรเจ็กต์ภาษา C คุณสามารถเข้าถึงและแก้ไขตัวแปรเหล่านั้นได้โดยตรงผ่านชื่อตัวแปรในฟังก์ชันที่คุณต้องการใช้ ตัวอย่างเช่น สมมติว่าคุณมีฟังก์ชันสองฟังก์ชัน function1 และ function2 ในโปรเจ็กต์ของคุณ และตัวแปรโกลบอลชื่อ globalVariable ถูกกำหนดไว้ในขอบเขตโกลบอล GlobalVariable สามารถใช้และแก้ไขได้โดยตรงใน function1 และ function2 ตัวอย่างเช่น:
int globalVariable; // กำหนดตัวแปรโกลบอลในขอบเขตโกลบอล void function1() { globalVariable = 10; // แก้ไขค่าของตัวแปรโกลบอลในฟังก์ชัน}โมฆะ function2() { int localVar = globalVariable; ฟังก์ชั่น ค่าของตัวแปร printf (ค่าของ globalVariable คือ %d, localVar);}วิธีนี้ทำให้คุณสามารถเข้าถึงและแก้ไขค่าของตัวแปรร่วมในฟังก์ชันต่างๆ ได้