จาก โครงสร้างโปรแกรม ภาษา C คุณได้เห็นโครงสร้างพื้นฐานของโปรแกรม C แล้ว ดังนั้นมันจะง่ายต่อการทำความเข้าใจโครงสร้างพื้นฐานอื่นๆ ของภาษาโปรแกรม C Basic Syntax (ไวยากรณ์พื้นฐาน)

Tokens in C (โทเค็นใน C)
โปรแกรม C ประกอบด้วยโทเค็นต่างๆ และโทเค็นเป็นได้ทั้งคีย์เวิร์ด ตัวระบุ ค่าคงที่ สตริง ตัวอักษร หรือสัญลักษณ์ ตัวอย่างเช่น คำสั่ง C ต่อไปนี้ประกอบด้วยโทเค็น 5 ตัว −
printf("Hello, World! \n");
โทเค็นแต่ละรายการคือ −
printf
(
"Hello, World! \n"
)
;
Semicolons ; (เซมิโคลอน)
ในโปรแกรม C เครื่องหมาย ; เซมิโคลอนเป็นตัวสิ้นสุดคำสั่ง กล่าวคือ แต่ละประโยคต้องลงท้ายด้วยเซมิโคลอน มันบ่งชี้จุดสิ้นสุดของเอนทิตีตรรกะหนึ่งรายการ
เซมิโคลอน (Semicolon) (;) เป็นสัญลักษณ์ที่ใช้เพื่อแบ่งแยกคำสั่งภายในโปรแกรม ซึ่งมันหมายถึงการจบคำสั่งนั้นๆ เซมิโคลอนใช้ในภาษาต่างๆ และมันเป็นสิ่งที่บังคับ เพื่อให้ตัวคอมไพเลอร์ของภาษาสามารถแยกแยะคำสั่งในการทำงานได้
ด้านล่างเป็น 2 ชุดคำสั่ง (Statements) ที่แตกต่างกัน −
printf("Hello, World! \n");
return 0;
Comments (คำอธิบายโปรแกรม)
Comments เป็นส่วนของโค้ดที่ไม่มีผลต่อการทำงานของโปรแกรม มันถูกใช้เพื่ออธิบายโปรแกรมสำหรับมนุษย์เข้าใจ ในภาษา C คำอธิบายโปรแกรม เป็นเหมือนข้อความช่วยเหลือในโปรแกรม C ของคุณและคอมไพเลอร์จะละเว้น โดยขึ้นต้นด้วย /* และลงท้ายด้วยอักขระ */ ดังที่แสดงด้านล่าง −
/* my first program in C */
Identifier (การตั้งชื่อ)
Identifier คือชื่อที่ใช้ระบุตัวแปร ฟังก์ชัน หรือรายการอื่นๆ ที่ผู้ใช้กำหนด ชื่อเริ่มต้นด้วยตัวอักษร A ถึง Z, a ถึง z หรือขีดล่าง ‘_’ ตามด้วยตัวอักษร และตัวเลขตั้งแต่ 0 ถึง 9)
C ไม่อนุญาตให้ใช้เครื่องหมายวรรคตอน เช่น @, $ และ % ภายในชื่อ ดังนั้น Manpower และ manpower จึงเป็นชื่อที่แตกต่างกันใน C ต่อไปนี้คือตัวอย่างบางส่วนของชื่อที่ยอมรับได้:
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
หลักการตั้งชื่อ
การตั้งชื่อฟังก์ชัน การตั้งชื่อตัวแปร หรือชื่ออื่นๆ ซึ่งถือว่าเป็นชื่อเฉพาะที่กําหนดขึ้นโดยผู้เขียนโปรแกรมเป็นผู้กําหนด (identifiers) การกําหนดชื่อต่างๆ เหล่านี้ สําหรับภาษาซีมีกฎเกณฑ์ดังต่อไปนี้
1. ชื่อต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย _ (เส้นใต้) เครื่องหมายอื่นใช้ไม่ได้
2. ภายในชื่อไม่มีการเว้นวรรค อาจใช้เครื่องหมาย _ ขั้นระหว่างตัวอักษรให้ดูเหมือนเว้นวรรคได้
3. ถัดจาตัวแรกอาจเป็นตัวอักษร ตัวเลข หรือเครื่องหมาย _ก็ได้
4. ความยาวของชื่อไม่จํากัด แต่จะนําตัวอักษรไปเปรียบเทียบความแตกต่าง เพียง 32 ตัวแรกเท่านั้น
5. ตัวอักษรตัวเล็กและตัวอักษรตัวใหญ่ภาษาซีจะถือว่าต่างกัน หรือจะพูดว่า “ชื่อจะเป็น Case-Sensitive”
6. การตั้งชื่อควรหลีกเลี่ยงชื่อที่มีตัวแรกเป็นเครื่องหมาย _เพราะชื่อชนิดนี้มีใช้อยู่มากในการตั้งชื่อตัวแปรของโปรแกรมระบบ (System Variables) อาจจะตรงกันได้โดยไม่ได้ตั้งใจ จะทําให้โปรแกรมทํางานผิดพลาดได้
ชื่อที่ตั้งขึ้นจะต้องไม่ตรงกับคําสงวน (Reserved Words) หรือบางทีเรียกว่า Keywords เพราะคําสงวนเหล่านี้ได้ถูกใช้เป็นชื่อคําสั่งหรือชื่อของฟังก์ชันในตัวภาษาอยู่แล้ว จะได้ชื่อที่ซํ้ากันอีกไม่ได้
Keywords (คําหลัก)
คําหลัก (Keywords) หรือ คําสงวน (Reserved words) เป็นคําที่มีความหมายพิเศษให้กับคอมไพเลอร์ของ C ดังนั้น นักเขียนโปรแกรม (programmer) จะต้อง ระมัดระวังไม่ควรใช้คำ เหล่านี้มาตั้งชื่อเป็นตัวแปรโดยเด็ดขาด
keyword เป็นกลุ่มคำที่ถูกสงวนไว้โดยเราไม่สามารถใช้คำเหล่านี้ในการประกาศเป็นชื่อตัวแปร ฟังก์ชัน ซึ่งในโปรแกรมทุกภาษาต่างก็มี keyword นี่เป็น keyword มาตราฐานในภาษา C
auto | else | long | switch |
break | enum | register | typedef |
case | extern | return | union |
char | float | short | unsigned |
const | for | signed | void |
continue | goto | sizeof | volatile |
default | if | static | while |
do | int | struct | _Packed |
double |
Whitespace in C (ช่องว่างใน C)
Whitespace คือตัวอักษรหรือเครื่องหมายที่ใช้แบ่งแยกคำสั่งและ Token ในโค้ดของโปรแกรม ในภาษา C นั้น white space จะประกอบไปด้วย การเว้นวรรค Tab และการขึ้นบรรทัดใหม่ Whitespace ที่เรียงต่อกันเป็นจำนวนมากนั้นไม่มีผลต่อการทำงานของโปรแกรมและคอมไพเลอร์ แต่มันช่วยให้โปรแกรมเมอร์สามารถทำโค้ดให้เป็นระเบียบและสามารถอ่านเข้าใจได้ง่ายขึ้นโดยคนอื่นๆ แต่ Whitespace ยังคงต้องใช้ในบางที่ เช่น ระหว่างคำสั่งของภาษา C และชื่อของตัวแปร เป็นต้น
Whitespace คือคำที่ใช้ในภาษา C เพื่อ แยกส่วนหนึ่งของคำสั่งจากส่วนอื่นและช่วยให้คอมไพเลอร์สามารถระบุที่องค์ประกอบหนึ่งในคำสั่งเช่น int สิ้นสุดและองค์ประกอบถัดไปเริ่มต้น ดังนั้นในข้อความต่อไปนี้ −
int age;
ต้องมีอักขระช่องว่างอย่างน้อยหนึ่งตัว (โดยปกติคือช่องว่าง) ระหว่าง int และ age เพื่อให้คอมไพเลอร์สามารถแยกแยะได้ ในทางกลับกัน ในข้อความต่อไปนี้ −
fruit = apples + oranges; // get the total fruit
ไม่จำเป็นต้องใช้อักขระช่องว่างระหว่าง fruit กับ = หรือระหว่าง = กับ apples แม้ว่าคุณจะมีอิสระที่จะใส่อักขระบางตัวหากต้องการเพิ่มความง่ายในการอ่าน