Latest web development tutorials
×

C หลักสูตร

C กวดวิชาภาษา C แนะนำโดยย่อ C การตั้งค่าสภาพแวดล้อม C โครงสร้างหลักสูตร C ไวยากรณ์พื้นฐาน C ชนิดข้อมูล C ตัวแปร C คงที่ C ประเภทการจัดเก็บ C ผู้ประกอบการ C ผู้พิพากษา C การไหลเวียน C ฟังก์ชัน C การกำหนดขอบเขตกฎระเบียบ C แถว C ชี้ C เชือก C โครงสร้าง C สหภาพ C ฟิลด์บิต C typedef C อินพุตและเอาต์พุต C การอ่านออกเขียนเอกสาร C preprocessor C ส่วนหัว C ปลดเปลื้อง C จัดการข้อผิดพลาด C recursion C พารามิเตอร์ตัวแปร C จัดการหน่วยความจำ C บรรทัดคำสั่ง C คลาสสิก 100 ราย

C ห้องสมุดมาตรฐาน

C ห้องสมุดมาตรฐาน - คู่มืออ้างอิง C ห้องสมุดมาตรฐาน - <assert.h> C ห้องสมุดมาตรฐาน - <ctype.h> C ห้องสมุดมาตรฐาน - <errno.h> C ห้องสมุดมาตรฐาน - <float.h> C ห้องสมุดมาตรฐาน - <limits.h> C ห้องสมุดมาตรฐาน - <locale.h> C ห้องสมุดมาตรฐาน - <math.h> C ห้องสมุดมาตรฐาน - <setjmp.h> C ห้องสมุดมาตรฐาน - <signal.h> C ห้องสมุดมาตรฐาน - <stdarg.h> C ห้องสมุดมาตรฐาน - <stddef.h> C ห้องสมุดมาตรฐาน - <stdio.h> C ห้องสมุดมาตรฐาน - <stdlib.h> C ห้องสมุดมาตรฐาน - <string.h> C ห้องสมุดมาตรฐาน - <time.h>

ประเภทการจัดเก็บ C

ความหมายประเภทการจัดเก็บ C ตัวแปรโปรแกรม / ช (การแสดงผล) ฟังก์ชั่นและวงจรชีวิต specifiers เหล่านี้วางไว้ก่อนที่จะปรับเปลี่ยนชนิด ด้านล่างมีการจัดเก็บคลาส C ที่มีอยู่ในโปรแกรม:

  • รถยนต์
  • การลงทะเบียน
  • คงที่
  • extern

ประเภทการจัดเก็บอัตโนมัติ

ประเภทการจัดเก็บอัตโนมัติเป็นตัวแปรท้องถิ่นประเภทการจัดเก็บค่าเริ่มต้น

{
   int mount;
   auto int month;
}

ตัวอย่างข้างต้นกำหนดสองตัวแปรที่มีการจัดเก็บข้อมูลระดับเดียวกันรถยนต์สามารถนำมาใช้เฉพาะภายในฟังก์ชั่นคืออัตโนมัติเพียงปรับเปลี่ยนตัวแปรท้องถิ่น

ลงทะเบียนประเภทการจัดเก็บ

ลงทะเบียนอุปกรณ์เก็บข้อมูลใช้เพื่อกำหนดเก็บไว้ในทะเบียนแทนแรมในตัวแปรท้องถิ่นซึ่งหมายความว่าขนาดสูงสุดของตัวแปรเท่ากับขนาดของการลงทะเบียน (โดยปกติคำ) และไม่สามารถนำไปใช้มันเอก '&' ผู้ประกอบการ (เพราะมันมีที่ตั้งหน่วยความจำไม่ได้)

{
   register int  miles;
}

ต้องการเพียงลงทะเบียนสำหรับการเข้าถึงที่รวดเร็วกับตัวแปรเช่นเคาน์เตอร์ มันก็ควรจะตั้งข้อสังเกตว่าคำนิยามของ 'สมัคร' ไม่ได้หมายความว่าตัวแปรที่จะถูกเก็บไว้ในการลงทะเบียนก็หมายความว่าตัวแปรอาจถูกเก็บไว้ในการลงทะเบียนขึ้นอยู่กับข้อ จำกัด ของฮาร์ดแวร์และการดำเนินการ

อุปกรณ์เก็บข้อมูลแบบคงที่

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

ปรับปรุงแบบคงที่สามารถนำไปใช้ตัวแปรทั่วโลก เมื่อมีการปรับเปลี่ยนตัวแปรทั่วโลกคงที่ตัวแปรจะ จำกัด ขอบเขตของคำสั่งในแฟ้มของตน

การเขียนโปรแกรมใน C,เมื่อใช้กับสมาชิกข้อมูลคงที่ของชั้นวัตถุทั้งหมดจะส่งผลให้ในเวลาเพียงหนึ่งสำเนาของสมาชิกชั้นที่ใช้ร่วมกัน

#include <stdio.h>
 
/* 函数声明 */
void func(void);
 
static int count = 5; /* 全局变量 */
 
main()
{
   while(count--)
   {
      func();
   }
   return 0;
}
/* 函数定义 */
void func( void )
{
   static int i = 5; /* 局部静态变量 */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

บางทีคุณอาจจะยังไม่สามารถเข้าใจเช่นนี้เพราะฉันได้ใช้ฟังก์ชั่นและตัวแปรระดับโลกทั้งสองแนวคิดเพื่อให้ห่างไกลได้อธิบาย แม้ว่าคุณจะไม่เข้าใจมันไม่สำคัญว่าบทต่อมาเราจะอธิบายในรายละเอียด เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

ประเภทการจัดเก็บ extern

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

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

ปรับปรุง extern มักจะใช้เมื่อมีสองไฟล์หรือมากกว่าส่วนตัวแปรทั่วโลกเดียวกันหรือฟังก์ชั่นของเวลาดังต่อไปนี้:

ไฟล์แรก: main.c

#include <stdio.h>
 
int count ;
extern void write_extern();
 
main()
{
   count = 5;
   write_extern();
}

แฟ้มสอง: support.c

#include <stdio.h>
 
extern int count;
 
void write_extern(void)
{
   printf("count is %d\n", count);
}

นี่คือคำสำคัญไฟล์externที่สองคือใช้ในการนับในคำสั่งแรกได้รับการกำหนดไว้ใน main.c. ไฟล์ ตอนนี้รวบรวมไฟล์ทั้งสองดังนี้

 $gcc main.c support.c

นี้จะผลิตa.out โปรแกรมปฏิบัติการเมื่อโปรแกรมจะถูกดำเนินการก็จะให้ผลลัพธ์ที่ต่อไปนี้:

5