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

คำอธิบายเกี่ยวกับส่วนลิงก์และส่วนนิยามในภาษา C


ส่วนลิงก์ (Link Section) และส่วนนิยาม (Definition Section) เรียกว่าคำสั่งก่อนการประมวลผล (Preprocessor Directives) ซึ่งให้คำสั่งแก่คอมไพเลอร์ให้ลิงก์ฟังก์ชันจากไลบรารีระบบ

ตัวอย่างเช่น ส่วนนิยามจะนิยามค่าคงที่สัญลักษณ์ (Symbolic Constants) ทั้งหมด

#include <stdio.h>

ตัวอย่าง:

#define PI 3.1415

คำสั่งก่อนการประมวลผลต้องขึ้นต้นด้วยสัญลักษณ์ # เสมอ

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

ฟังก์ชันที่นิยามไว้ล่วงหน้า (Predefined Functions)

ฟังก์ชันที่นิยามไว้ล่วงหน้าใน stdio.h มีดังนี้:

ฟังก์ชันคำอธิบาย
printf()พิมพ์ตัวอักษร สตริง จำนวนจริง จำนวนเต็ม โอคทัล ไปที่หน้าจอ
scanf()อ่านตัวอักษร สตริง ข้อมูลตัวเลข จากคีย์บอร์ด
getc()อ่านตัวอักษรจากไฟล์
gets()อ่านบรรทัดจากคีย์บอร์ด
getchar()อ่านตัวอักษรจากคีย์บอร์ด
puts()เขียนบรรทัดไปที่หน้าจอผลลัพธ์
putchar()เขียนตัวอักษรไปที่หน้าจอ
clearerr()ล้างตัวบ่งชี้ข้อผิดพลาด
fopen()ฟังก์ชันจัดการไฟล์ทั้งหมดนิยามอยู่ในไฟล์ส่วนหัว stdio.h
fclose()ปิดไฟล์ที่เปิดอยู่
getw()อ่านจำนวนเต็มจากไฟล์
putw()เขียนจำนวนเต็มไปที่ไฟล์
fgetc()อ่านตัวอักษรจากไฟล์
putc()เขียนตัวอักษรไปที่ไฟล์
fputc()เขียนตัวอักษรไปที่ไฟล์
fgets()อ่านสตริงจากไฟล์
fputs()เขียนสตริงไปที่ไฟล์
feof()ตรวจสอบปลายไฟล์
fgetcharอ่านตัวอักษรจากคีย์บอร์ด
fgetc()อ่านตัวอักษรจากไฟล์
fprintf()เขียนข้อมูลแบบจัดรูปแบบไปที่ไฟล์
fscanf()อ่านข้อมูลแบบจัดรูปแบบจากไฟล์
fputcharเขียนตัวอักษรจากคีย์บอร์ด
putc()เขียนตัวอักษรไปที่ไฟล์
sprint()เขียนเอาต์พุตแบบจัดรูปแบบไปที่สตริง
sscanf()อ่านอินพุตแบบจัดรูปแบบจากสตริง
remove()ลบไฟล์
fflush()ล้างบัฟเฟอร์ไฟล์

ตัวอย่าง

โปรแกรม C ต่อไปนี้คำนวณ เส้นรอบวงของวงกลม:

#include <stdio.h> // ส่วนลิงก์
#define PI 3.1415 // ส่วนนิยาม

int main() {
    float c, r;
    printf("Enter radius of circle r=");
    scanf("%f", &r);
    c = 2 * PI * r;
    printf("Circumference of circle c=%f", c);
    return 0;
}

ผลลัพธ์

ผลลัพธ์ที่ได้คือ:

Enter radius of circle r=6
Circumference of circle c=37.698002