ภาษาซีเป็นภาษาที่มีโครงสร้างในการเขียนโปรแกรมที่ชัดเจน ซึ่งมีรูปแบบของโครงสร้างโปรแกรม ดังนี้ 1. ส่วนหัวของโปรแกรม ส่วนหัวของโปรแกรมนี้เรียกว่า
Preprocessing Directive ใช้ระบุเพื่อบอกให้คอมไพเลอร์กระทำการ ใด ๆ ก่อนการแปลผลโปรแกรม ในที่นี่คำสั่ง #include ใช้บอกกับคอมไพเลอร์ให้นำเฮดเดอร์ไฟล์ที่ระบุ คือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกำหนด preprocessing directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ คำสั่งที่ใช้ระบุให้คอมไพเลอร์นำเฮดเดอร์ไฟล์เข้าร่วมในการแปลโปรแกรม สามารถเขียนได้ 2 รูปแบบ คือ
รูปภาพที่ 1 โครงสร้างของภาษาซี
- #include <ชื่อเฮดเดอร์ไฟล์> คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุจากไดเรกทอรีที่ใช้สำหรับเก็บเฮดเดอร์ไฟล์โดยเฉพาะ (ปกติคือไดเรกทอรีชื่อ include)
- #include “ชื่อเฮดเดอร์ไฟล์” คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟที่ระบุ จากไดเร็คทอรีเดียวกันกับไฟล์ source code นั้น แต้ถ้าไม่พบก็จะไปค้นหาไดเร็คทอรีที่ใช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ
2. ส่วนของฟังก์ชั่นหลัก
ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main() ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชั่นนี้อยู่ในโปรแกรมเสมอ จะเห็นได้จากชื่อฟังก์ชั่นคือ main แปลว่า “หลัก” ดังนั้น การเขียนโปรแกรมภาษซีจึงขาดฟังก์ชั่นนี้ไปไม่ได้ โดยขอบเขตของฟังก์ชั่นจะถูกกำหนดด้วยเครื่องหมาย { และ } กล่าวคือ การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชั่น main() สามารถเขียนในรูปแบบของ void main(void) ก็ได้ มีความหมายเหมือนกัน คือ หมายความว่า ฟังก์ชั่น main() จะไม่มีอาร์กิวเมนต์ (argument) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชั่น และจะไม่มีการคืนค่าใด ๆ กลับออกไปจากฟังก์ชั่นด้วย
3. ส่วนคำสั่ง/ชุดคำสั่งภาษาโปรแกรม
เป็นส่วนของการเขียนคำสั่ง เพื่อให้โปรแกรมทำงานตามที่ได้ออกแบบไว้
ตัวอย่างโปรแกรมภาษาซี
#include <stdio.h> main() { printf("Hello world!\n"); }โปรแกรมนี้เป็นโปรแกรมเพื่อแสดงข้อความอย่างง่าย “Hello world!” ออกทางหน้าจอ เราได้ใช้ฟังก์ชันต่างๆ จากไลบรารี่ stdio.h ของภาษา C ที่สามารถให้เราทำสิ่งต่างๆ ได้ แสดงข้อความออกทางจอภาพหรือรับค่าจากคีย์บอร์ด
นี่เป็นผลลัพธ์การทำงานของโปรแกรมซึ่งจะแสดงผลข้อความ “Hello world!” ออกทางหน้าจอ คุณสามารถเปลี่ยนเป็นชื่อของคุณเองแล้วดูผลลัพธ์
สิ่งสำคัญที่ควรรู้
Blocks
บล็อค คือสิ่งที่กำหนดขอบเขตและควบคุมการทำงานของโปรแกรม ซึ่งจะใช้เครื่องหมาย { และสิ้นสุดด้วย } ในภาษา C บล็อคนั้นมีหลายรูปแบบ เช่น บล็อคของฟังก์ชัน บล็อคของคำสั่งควบคุม หรือบล็อคย่อยในโปรแกรม และนอกจากนี้บล็อคยังสามารถซ้อนกันได้
#include <stdio.h> int sum(int a, int b) { return a + b; } main() { int x = 3, y = 4; if (x < y) { printf("%d\n", sum(x, y)); } printf("Summation program\n", sum(x, y)); }ในตัวอย่าง เป็นการใช้บล็อคในภาษา C
Comment
Comment เป็นส่วนของโค้ดที่ไม่มีผลต่อการทำงานของโปรแกรม มันถูกใช้เพื่ออธิบายโปรแกรมสำหรับมนุษย์เข้าใจ ในภาษา C เราสามารถคอมเม้นท์ได้สองวิธี คือ การคอมเมนต์แบบหนึ่งบรรทัดและแบบหลายบรรทัด
// Multiple lines comment example #include <stdio.h> main() { /* This is my comment This another line comment */ printf("Hello C language\n"); }ในตัวอย่าง การคอมเมนต์แบบหนึ่งบรรทัด เราจะใช้เครื่องหมาย Double slash (//) และตามด้วยสิ่งที่เราต้องการคอมเมนต์ และการคอมเมนต์หลายบรรทัด มันจะละเว้นทุกอย่างหลังจากการปรากฏครั้งแรกของเครื่องหมาย Slash star (/*) และสิ้นสุดที่ Star slash (*/)
Semicolon
เซมิโคลอน (Semicolon) (;) เป็นสัญลักษณ์ที่ใช้เพื่อแบ่งแยกคำสั่งภายในโปรแกรม ซึ่งมันหมายถึงการจบคำสั่งนั้นๆ เซมิโคลอนใช้ในภาษาต่างๆ และมันเป็นสิ่งที่บังคับ เพื่อให้ตัวคอมไพเลอร์ของภาษาสามารถแยกแยะคำสั่งในการทำงานได้
ในตัวอย่างเรามีสี่คำสั่ง บรรทัดแรกเป็นการประกาศตัวแปร บรรทัดที่สองคุณจะเห็นสองคำสังอยู่ในบรรทัดเดียวกันและมันสิ้นสุดด้วยเซมิโคลอน บรรทัดที่สามจะแสดงค่าผลรวมของตัวแปร a และ b
Keyword
เป็นกลุ่มคําที่ถูกสงวนไว้โดยเราไม่สามารถใช้คําเหล่านี้ในการประกาศเป็นชื่อตัวแปร หรือฟังก์ชัน นี่เป็น Keyword มาตราฐานในภาษา C
auto | break | case | char |
const | continue | default | do |
double | else | enum | extern |
float | for | goto | if |
int | long | register | return |
short | signed | sizeof | static |
struct | switch | typedef | union |
unsigned | void | volatile | while |
Keyword เหล่านี้มีหน้าที่การทำงานที่แน่นอนซึ่งขึ้นกับวัตุประสงค์ของมัน int, short, float, double ใช้เพื่อประกาศตัวแปร ในขณะที่ if for while เป็นคำสังในการควบคุมการทำงานของโปรแกรม