text: ภาษาซี (C) เป็นภาษาโปรแกรมสําหรับวัตถุประสงค์ทั่วไป เริ่มพัฒนาขึ้นระหว่าง พ.ศ. 2512–2516 (ค.ศ. 1969–1973) โดยเดนนิส ริตชี (Dennis Ritchie) ที่เอทีแอนด์ทีเบลล์แล็บส์ (AT&T Bell Labs) ภาษาซีเป็นภาษาที่มีความยืดหยุ่นในการเขียนโปรแกรมและมีเครื่องมืออํานวยความสะดวกสําหรับการเขียนโปรแกรมเชิงโครงสร้างและอนุญาตให้มีขอบข่ายตัวแปร (scope) และการเรียกซ้ํา (recursion) ในขณะที่ระบบชนิดตัวแปรอพลวัตก็ช่วยป้องกันการดําเนินการที่ไม่ตั้งใจหลายอย่าง เหมือนกับภาษาโปรแกรมเชิงคําสั่งส่วนใหญ่ในแบบแผนของภาษาอัลกอล การออกแบบของภาษาซีมีคอนสตรักต์ (construct) ที่โยงกับชุดคําสั่งเครื่องทั่วไปได้อย่างพอเพียง จึงทําให้ยังมีการใช้ในโปรแกรมประยุกต์ซึ่งแต่ก่อนลงรหัสเป็นภาษาแอสเซมบลี คือซอฟต์แวร์ระบบอันโดดเด่นอย่างระบบปฏิบัติการคอมพิวเตอร์ ยูนิกซ์ ภาษาซีเป็นภาษาโปรแกรมหนึ่งที่ใช้กันอย่างแพร่หลายมากที่สุดตลอดกาล และตัวแปลโปรแกรมของภาษาซีมีให้ใช้งานได้สําหรับสถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการต่าง ๆ เป็นส่วนมาก ภาษาหลายภาษาในยุคหลังได้หยิบยืมภาษาซีไปใช้ทั้งทางตรงและทางอ้อม ตัวอย่างเช่น ภาษาดี ภาษาโก ภาษารัสต์ ภาษาจาวา จาวาสคริปต์ ภาษาลิมโบ ภาษาแอลพีซี ภาษาซีชาร์ป ภาษาอ็อบเจกทีฟ-ซี ภาษาเพิร์ล ภาษาพีเอชพี ภาษาไพทอน ภาษาเวอริล็อก (ภาษาพรรณนาฮาร์ดแวร์) และซีเชลล์ของยูนิกซ์ ภาษาเหล่านี้ได้ดึงโครงสร้างการควบคุมและคุณลักษณะพื้นฐานอื่น ๆ มาจากภาษาซี ส่วนใหญ่มีวากยสัมพันธ์คล้ายคลึงกับภาษาซีเป็นอย่างมากโดยรวม (ยกเว้นภาษาไพทอนที่ต่างออกไปอย่างสิ้นเชิง) และตั้งใจที่จะผสานนิพจน์และข้อความสั่งที่จําแนกได้ของวากยสัมพันธ์ของภาษาซี ด้วยระบบชนิดตัวแปร ตัวแบบข้อมูล และอรรถศาสตร์ที่อาจแตกต่างกันโดยมูลฐาน ภาษาซีพลัสพลัสและภาษาอ็อบเจกทีฟ-ซีเดิมเกิดขึ้นในฐานะตัวแปลโปรแกรมที่สร้างรหัสภาษาซี ปัจจุบันภาษาซีพลัสพลัสแทบจะเป็นเซตใหญ่ของ ในขณะที่ภาษาอ็อบเจกทีฟ-ซีก็เป็นเซตใหญ่อันเคร่งครัดของภาษาซี ก่อนที่จะมีมาตรฐานภาษาซีอย่างเป็นทางการ ผู้ใช้และผู้พัฒนาต่างก็เชื่อถือในข้อกําหนดอย่างไม่เป็นทางการในหนังสือที่เขียนโดยเดนนิส ริตชี และไบรอัน เคอร์นิกัน (Brian Kernighan) ภาษาซีรุ่นนั้นจึงเรียกกันโดยทั่วไปว่า ภาษาเคแอนด์อาร์ซี (K&R C) ต่อมา พ.ศ. 2532 สถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา (ANSI) ได้ตีพิมพ์มาตรฐานสําหรับภาษาซีขึ้นมา เรียกกันว่า ภาษาแอนซีซี (ANSI C) หรือ ภาษาซี89 (C89) ในปีถัดมา องค์การระหว่างประเทศว่าด้วยการมาตรฐาน (ISO) ได้อนุมัติให้ข้อกําหนดเดียวกันนี้เป็นมาตรฐานสากล เรียกกันว่า ภาษาซี90 (C90) ในเวลาต่อมาอีก องค์การฯ ก็ได้เผยแพร่ส่วนขยายมาตรฐานเพื่อรองรับสากลวิวัตน์ (internationalization) เมื่อ พ.ศ. 2538 และมาตรฐานที่ตรวจชําระใหม่เมื่อ พ.ศ. 2542 เรียกกันว่า ภาษาซี99 (C99) มาตรฐานรุ่นปัจจุบันก็ได้รับอนุมัติเมื่อเดือนธันวาคม พ.ศ. 2554 เรียกกันว่า ภาษาซี12 (C12) การออกแบบ ภาษาซีเป็นภาษาที่ใช้ในการมีปฏิสัมพันธ์เช่น เชิงคําสั่ง (หรือเชิงกระบวนงาน) ถูกออกแบบขึ้นเพื่อใช้แปลด้วยตัวแปลโปรแกรมแบบการเชื่อมโยงที่ตรงไปตรงมา สามารถเข้าถึงหน่วยความจําในระดับล่าง เพื่อใช้งานสร้างภาษาที่จับคู่อย่างมีประสิทธิภาพกับชุดคําสั่งเครื่อง และแทบไม่ต้องการสนับสนุนใด ๆ ขณะทํางาน ภาษาซีจึงเป็นประโยชน์สําหรับหลายโปรแกรมที่ก่อนหน้านี้เคยเขียนในภาษาแอสเซมบลีมาก่อน หากคํานึงถึงความสามารถในระดับล่าง ภาษานี้ถูกออกแบบขึ้นเพื่อส่งเสริมการเขียนโปรแกรมที่ขึ้นอยู่กับเครื่องใดเครื่องหนึ่ง (machine-independent) โปรแกรมภาษาซีที่เขียนขึ้นตามมาตรฐานและเคลื่อนย้ายได้ สามารถแปลได้บนแพลตฟอร์มคอมพิวเตอร์และระบบปฏิบัติการต่าง ๆ อย่างกว้างขวาง โดยแก้ไขรหัสต้นฉบับเพียงเล็กน้อยหรือไม่ต้องแก้ไขเลย ภาษานี้สามารถใช้ได้บนแพลตฟอร์มได้หลากหลายตั้งแต่ไมโครคอนโทรลเลอร์ฝังตัวไปจนถึง[[แฮรี่เคน)) ลักษณะเฉพาะ ภาษาซีมีสิ่งอํานวยสําหรับการเขียนโปรแกรมเชิงโครงสร้าง และสามารถกําหนดขอบข่ายตัวแปรและเรียกซ้ํา เช่นเดียวกับภาษาโปรแกรมเชิงคําสั่งส่วนใหญ่ในสายตระกูลภาษาอัลกอล ในขณะที่ระบบชนิดตัวแปรแบบอพลวัตช่วยป้องกันการดําเนินการที่ไม่ได้ตั้งใจ รหัสที่ทํางานได้ทั้งหมดในภาษาซีถูกบรรจุอยู่ในฟังก์ชัน พารามิเตอร์ของฟังก์ชันส่งผ่านด้วยค่าของตัวแปรเสมอ ส่วนการส่งผ่านด้วยการอ้างอิงจะถูกจําลองขึ้นโดยการส่งผ่านค่าตัวชี้ ชนิดข้อมูลรวมแบบแตกต่าง (struct) ช่วยให้สมาชิกข้อมูลที่เกี่ยวข้องกันสามารถรวมกันและจัดการได้ในหน่วยเดียว รหัสต้นฉบับของภาษาซีเป็นรูปแบบอิสระ ซึ่งใช้อัฒภาค (;) เป็นตัวจบคําสั่ง (มิใช่ตัวแบ่ง) ภาษาซียังมีลักษณะเฉพาะต่อไปนี้เพิ่มเติม ตัวแปรอาจถูกซ่อนในบล็อกซ้อนใน ชนิดตัวแปรไม่เคร่งครัด เช่นข้อมูลตัวอักษรสามารถใช้เป็นจํานวนเต็ม เข้าถึงหน่วยความจําคอมพิวเตอร์ในระดับต่ําโดยแปลงที่อยู่ในเครื่องด้วยชนิดตัวแปรตัวชี้ (pointer) ฟังก์ชันและตัวชี้ข้อมูลรองรับการทํางานในภาวะหลายรูปแบบ (polymorphism) การกําหนดดัชนีแถวลําดับสามารถทําได้ด้วยวิธีรอง คือนิยามในพจน์ของเลขคณิตของตัวชี้ ตัวประมวลผลก่อนสําหรับการนิยามแมโคร การรวมไฟล์รหัสต้นฉบับ และการแปลโปรแกรมแแบ ความสามารถที่ซับซ้อนเช่น ไอ/โอ การจัดการสายอักขระ และฟังก์ชันทางคณิตศาสตร์ รวมอยู่ในไลบรารี คําหลักที่สงวนไว้มีจํานวนค่อนข้างน้อย ตัวดําเนินการแบบประสมจํานวนมาก เช่น +=, -=, *=, ++ ฯลฯ โครงสร้างการเขียน คล้ายภาษาบีมากกว่าภาษาอัลกอล ตัวอย่างเช่น ใช้วงเล็บปีกกา { ... } แทนที่จะเป็น begin ... end ในภาษาอัลกอล 60 หรือวงเล็บโค้ง ( ... ) ในภาษาอัลกอล 68 เท่ากับ = ใช้สําหรับกําหนดค่า (คัดลอกข้อมูล) เหมือนภาษาฟอร์แทรน แทนที่จะเป็น := ในภาษาอัลกอล เท่ากับสองตัว == ใช้สําหรับเปรียบเทียบความเท่ากัน แทนที่จะเป็น .EQ. ในภาษาฟอร์แทรนหรือ = ในภาษาเบสิกและภาษาอัลกอล ตรรกะ "และ" กับ "หรือ" แทนด้วย && กับ || ตามลําดับ แทนที่จะเป็นตัวดําเนินการ ∧ กับ ∨ ในภาษาอัลกอล แต่ตัวดําเนินการดังกล่าวจะไม่ประเมินค่าตัวถูกดําเนินการทางขวา ถ้าหากผลลัพธ์จากทางซ้ายสามารถพิจารณาได้แล้ว เหตุการณ์เช่นนี้เรียกว่าการประเมินค่าแบบลัดวงจร (short-circuit evaluation) และตัวดําเนินการดังกล่าวก็มีความหมายต่างจากตัวดําเนินการระดับบิต & กับ | คุณลักษณะที่ขาดไป ธรรมชาติของภาษาในระดับต่ําช่วยให้โปรแกรมเมอร์ควบคุมสิ่งที่คอมพิวเตอร์กระทําได้อย่างใกล้ชิด ในขณะที่อนุญาตให้มีการปรับแต่งพิเศษและการทําให้เหมาะที่สุดสําหรับแพลตฟอร์มหนึ่งใดโดยเฉพาะ สิ่งนี้ทําให้รหัสสามารถทํางานได้อย่างมีประสิทธิภาพบนฮาร์ดแวร์ที่มีทรัพยากรจํากัดมาก ๆ ได้เช่นระบบฝังตัว ภาษาซีไม่มีคุณลักษณะบางอย่างที่มีในภาษาอื่นอาทิ ไม่มีการนิยามฟังก์ชันซ้อนใน ไม่มีการกําหนดค่าแถวลําดับหรือสายอักขระโดยตรง (การคัดลอกข้อมูลจะกระทําผ่านฟังก์ชันมาตรฐาน แต่ก็รองรับการกําหนดค่าวัตถุที่มีชนิดเป็น struct หรือ union) ไม่มีการเก็บข้อมูลขยะโดยอัตโนมัติ ไม่มีข้อกําหนดเพื่อการตรวจสอบขอบเขตของแถวลําดับ ไม่มีการดําเนินการสําหรับแถวลําดับทั้งชุดในระดับตัวภาษา ไม่มีวากยสัมพันธ์สําหรับช่วงค่า (range) เช่น A..B ที่ใช้ในบางภาษา ก่อนถึงภาษาซี99 ไม่มีการแบ่งแยกชนิดข้อมูลแบบบูล (ค่าศูนย์หรือไม่ศูนย์ถูกนํามาใช้แทน) ไม่มีส่วนปิดคลุมแบบรูปนัย (closure) หรือฟังก์ชันในรูปแบบพารามิเตอร์ (มีเพียงตัวชี้ของฟังก์ชันและตัวแปร) ไม่มีตัวสร้างและโครูทีน การควบคุมกระแสการทํางานภายในเทร็ดมีเพียงการเรียกใช้ฟังก์ชันซ้อนลงไป เว้นแต่การใช้ฟังก์ชัน longjmp หรือ setcontext จากไลบรารี ไม่มีการจัดกระทําสิ่งผิดปรกติ (exception handling) ฟังก์ชันไลบรารีมาตรฐานจะแสดงเงื่อนไขข้อผิดพลาดด้วยตัวแปรส่วนกลาง errno และ/หรือค่ากลับคืนพิเศษ และฟังก์ชันไลบรารีได้เตรียม goto แบบไม่ใช่เฉพาะที่ไว้ด้วย การเขียนโปรแกรมเชิงมอดูลรองรับแค่ระดับพื้นฐานเท่านั้น การโอเวอร์โหลดฟังก์ชันหรือตัวดําเนินการไม่รองรับภาวะหลายรูปแบบขณะแปลโปรแกรม การเขียนโปรแกรมเชิงวัตถุรองรับในระดับที่จํากัดมาก โดยพิจารณาจากภาวะหลายรูปแบบกับการรับทอด (inheritance) การซ่อนสารสนเทศ (encapsulation) รองรับในระดับที่จํากัด ไม่รองรับโดยพื้นฐานกับการทํางานแบบมัลติเทร็ดและเครือข่ายคอมพิวเตอร์ ไม่มีไลบรารีมาตรฐานสําหรับคอมพิวเตอร์กราฟิกส์และความจําเป็นหลายอย่างในการเขียนโปรแกรมประยุกต์ คุณลักษณะเหล่านี้จํานวนหนึ่งมีให้ใช้ได้จากส่วนขยายในตัวแปลโปรแกรมบางตัว หรือจัดสรรไว้แล้วในสภาพแวดล้อมของระบบปฏิบัติการ (เช่นโพสซิกซ์) หรือจัดเตรียมโดยไลบรารีภายนอก หรือสามารถจําลองโดยดัดแปลงแก้ไขรหัสที่มีอยู่ หรือบางครั้งก็ถูกพิจารณาว่าไม่ใช่รูปแบบการเขียนโปรแกรมที่เหมาะสม พฤติกรรมไม่นิยาม การดําเนินการหลายอย่างในภาษาซีมีพฤติกรรมไม่นิยามซึ่งไม่ถูกกําหนดว่าต้องตรวจสอบขณะแปลโปรแกรม ในกรณีของภาษาซี "พฤติกรรมไม่นิยาม" หมายถึงพฤติกรรมเฉพาะอย่างที่เกิดขึ้นโดยมาตรฐานมิได้ระบุไว้ และสิ่งที่จะเกิดขึ้นก็ไม่มีในเอกสารการใช้งานของภาษาซี หนึ่งในชุดคําสั่งที่มีชื่อเสียงและน่าขบขันจากกลุ่มข่าว comp.std.c และ comp.lang.c นั้นทําให้โปรแกรมเกิดปัญหาที่เรียกว่า "ปิศาจที่ออกมาจากจมูกของคุณ" (demons to fly out of your nose) บางครั้งสิ่งที่เกิดขึ้นในทางปฏิบัติอันเป็นผลมาจากพฤติกรรมไม่นิยามทําให้เกิดจุดบกพร่องที่ยากต่อการตรวจสอบและอาจทําให้ข้อมูลในหน่วยความจําผิดแปลกไป ตัวแปลโปรแกรมบางชนิดช่วยสร้างการดําเนินงานที่ทําให้พฤติกรรมนั้นดีขึ้นและมีเหตุผล ซึ่งแตกต่างจากการแปลโดยตัวแปลชนิดอื่นที่อาจดําเนินงานไม่เหมือนกัน สาเหตุที่พฤติกรรมบางอย่างยังคงไว้ว่าไม่นิยามก็เพื่อให้ตัวแปลโปรแกรมบนสถาปัตยกรรมชุดของคําสั่งเครื่องที่หลากหลาย สามารถสร้างรหัสที่ทํางานได้ในพฤติกรรมที่นิยามอย่างมีประสิทธิภาพมากขึ้น ซึ่งเชื่อว่าเป็นบทบาทหนึ่งที่สําคัญของภาษาซีในฐานะภาษาสําหรับสร้างระบบ ดังนั้นภาษาซีจึงส่งผลให้เกิดความรับผิดชอบของโปรแกรมเมอร์เพื่อหลีกเลี่ยงพฤติกรรมไม่นิยาม โดยอาจใช้เครื่องมือต่าง ๆ เพื่อค้นหาส่วนของโปรแกรมว่าพฤติกรรมใดบ้างที่ไม่นิยาม ตัวอย่างของพฤติกรรมไม่นิยามเช่น การเข้าถึงข้อมูลนอกขอบเขตของแถวลําดับ ข้อมูลล้น (overflow) ในตัวแปรจํานวนเต็มมีเครื่องหมาย ฟังก์ชันที่กําหนดไว้ว่าต้องส่งค่ากลับ แต่ไม่มีคําสั่งส่งกลับ (return) ในฟังก์ชัน ในขณะเดียวกันค่าส่งกลับก็ถูกใช้งานด้วย การอ่านค่าตัวแปรโดยที่ยังไม่ได้กําหนดค่าเริ่มต้น การดําเนินการเหล่านี้ทั้งหมดเป็นข้อผิดพลาดในการเขียนโปรแกรม ซึ่งสามารถปรากฏในการใช้ภาษาโปรแกรมอื่น ๆ จํานวนมาก ภาษาซีจึงถูกวิพากษ์วิจารณ์เพราะมาตรฐานของมันสามารถชี้ให้เห็นถึงพฤติกรรมไม่นิยามในหลายกรณีได้อย่างชัดเจน รวมไปถึงพฤติกรรมบางอย่างที่อาจนิยามไว้อย่างดีแล้ว และไม่มีการระบุกลไกการจัดกระทําต่อข้อผิดพลาดขณะทํางานเลย ตัวอย่างหนึ่งของพฤติกรรมไม่นิยามเช่นการเรียกใช้ fflush() บนกระแสข้อมูลป้อนเข้า ซึ่งไม่จําเป็นว่าจะทําให้โปรแกรมทํางานผิดพลาด แต่ในบางกรณีที่การทําให้เกิดผลที่สอดคล้องกันได้นิยามไว้แล้วอย่างดี มีความหมายซึ่งใช้ประโยชน์ได้ (จากตัวอย่างนี้คือการสมมติให้ข้อมูลที่ป้อนเข้าถูกละทิ้งทั้งหมดจนถึงอักขระขึ้นบรรทัดใหม่ตัวถัดไป) เป็น ส่วนขยาย ที่อนุญาต ส่วนขยายที่ไม่เป็นมาตรฐานเช่นนี้เป็นข้อจํากัดความสามารถในการเคลื่อนย้ายของซอฟต์แวร์ ประวัติ การพัฒนาช่วงแรก การเริ่มต้นพัฒนาภาษาซีเกิดขึ้นที่เบลล์แล็บส์ของเอทีแอนด์ทีระหว่าง พ.ศ. 2512–2516 แต่ตามข้อมูลของริตชี ช่วงเวลาที่เกิดความสร้างสรรค์มากที่สุดคือ พ.ศ. 2515 ภาษานี้ถูกตั้งชื่อว่า "ซี" เพราะคุณลักษณะต่าง ๆ ต่อยอดมาจากภาษาก่อนหน้าคือ "บี" ซึ่งจากข้อมูลของเคน ทอมป์สัน (Ken Thompson) กล่าวว่าภาษาบีเป็นรุ่นที่แยกตัวออกจากภาษาบีซีพีแอลอีกทอดหนึ่ง จุดเริ่มต้นของภาษาซีผูกอยู่กับการพัฒนาระบบปฏิบัติการยูนิกซ์อย่างใกล้ชิด ซึ่งเดิมพัฒนาด้วยภาษาแอสเซมบลีบนหน่วยประมวลผลพีดีพี-7โดยริตชีและทอมป์สัน โดยผสมผสานความคิดหลากหลายจากเพื่อนร่วมงาน ในตอนท้ายพวกเขาตัดสินใจที่จะย้ายระบบปฏิบัติการนั้นลงในพีดีพี-11 แต่ภาษาบีขาดความสามารถบางอย่างที่จะใช้คุณลักษณะอันได้เปรียบของพีดีพี-11 เช่นความสามารถในการระบุตําแหน่งที่อยู่เป็นไบต์ จึงทําให้เกิดการพัฒนาภาษาซีรุ่นแรกขึ้นมา รุ่นดั้งเดิมของระบบยูนิกซ์บนพีดีพี-11ถูกพัฒนาขึ้นด้วยภาษาแอสเซมบลี เมื่อประมาณ พ.ศ. 2516 ภาษาซีเพิ่มชนิดข้อมูล struct ทําให้ภาษาซีเพียงพออย่างมีประสิทธิภาพ ซึ่งเคอร์เนลยูนิกซ์ส่วนใหญ่ถูกเขียนด้วยภาษาซี นี้ก็เป็นเคอร์เนลหนึ่งของระบบปฏิบัติการที่พัฒนาด้วยภาษาอื่นนอกเหนือจากภาษาแอสเซมบลี (ระบบอื่นเช่นมัลติกส์เขียนด้วยภาษาพีแอล/วัน เอ็มซีพีสําหรับเบอร์โรส์ บี5000เขียนด้วยภาษาอัลกอล ในปี พ.ศ. 2504) ภาษาเคแอนด์อาร์ซี เมื่อ พ.ศ. 2521 ไบรอัน เคอร์นิกัน (Brian Kernighan) และเดนนิส ริตชี ได้ตีพิมพ์หนังสือเล่มแรกชื่อ เดอะซีโปรแกรมมิงแลงกวิจ (The C Programming Language) ซึ่งเป็นที่รู้จักในกลุ่มโปรแกรมเมอร์ภาษาซีว่า "เคแอนด์อาร์" (K&R อักษรย่อของผู้แต่งทั้งสอง) หนังสือเล่มนี้ทําหน้าที่เป็นข้อกําหนดของภาษาอย่างไม่เป็นทางการมาหลายปี ภาษาซีรุ่นดังกล่าวจึงมักถูกอ้างถึงว่าเป็น ภาษาเคแอนด์อาร์ซี (K&R C) ส่วนหนังสือที่ปรับปรุงครั้งที่สองครอบคลุมมาตรฐานแอนซีซีที่มีขึ้นทีหลัง ภาษาเคแอนด์อาร์ซีได้แนะนําคุณลักษณะหลายประการเช่น ไลบรารีไอ/โอมาตรฐาน ชนิดข้อมูล long int (จํานวนเต็มขนาดยาว) ชนิดข้อมูล unsigned int (จํานวนเต็มไม่มีเครื่องหมาย) ตัวดําเนินการกําหนดค่าแบบประสมในรูปแบบ =ตัวดําเนินการ (เช่น =-) ถูกเปลี่ยนเป็น ตัวดําเนินการ= (เช่น -=) เพื่อลดปัญหาความกํากวมเชิงความหมาย อย่างเช่นกรณี i=-10 ซึ่งจะถูกตีความว่า i =- 10 แทนที่จะเป็นอย่างที่ตั้งใจคือ i = -10 แม้ว่าหลังจากการเผยแพร่มาตรฐานของภาษาซีเมื่อ พ.ศ. 2532 ภาษาเคแอนด์อาร์ซีถูกพิจารณาว่าเป็น "ส่วนร่วมต่ําสุด" อยู่เป็นเวลาหลายปี (ความสามารถในการแปลรหัสจํานวนหนึ่งเป็นคําสั่งซึ่งทํางานได้บนเครื่องใดก็ตามเป็นอย่างน้อย) ซึ่งโปรแกรมเมอร์ภาษาซีต้องจํากัดความสามารถของพวกเขาในกรณีที่ต้องการให้ระบบสามารถใช้ได้กับหลายเครื่องมากที่สุด เนื่องจากตัวแปลโปรแกรมเก่า ๆ ก็ยังคงมีการใช้งานอยู่ และการเขียนภาษาซีแบบเคแอนด์อาร์อย่างระมัดระวังสามารถเข้ากันได้กับภาษาซีมาตรฐานเป็นอย่างดี ในภาษาซีรุ่นแรก ๆ เฉพาะฟังก์ชันที่คืนค่าไม่เป็นจํานวนเต็ม จําเป็นต้องประกาศไว้ก่อนการนิยามฟังก์ชันหากมีการเรียกใช้ อีกนัยหนึ่งคือ ฟังก์ชันที่ถูกเรียกใช้โดยไม่มีการประกาศมาก่อน ถือว่าฟังก์ชันนั้นจะคืนค่าเป็นจํานวนเต็มหากค่าของมันถูกใช้งาน ตัวอย่างเช่น long int SomeFunction(); /* int OtherFunction(); */ /* int */ CallingFunction() { long int test1; register /* int */ test2; test1 = SomeFunction(); if (test1 > 0) test2 = 0; else test2 = OtherFunction(); return test2; } จากตัวอย่างข้างต้น การประกาศ int ที่ถูกคัดออก สามารถละเว้นได้ในภาษาเคแอนด์อาร์ซี แต่ long int จําเป็นต้องประกาศ การประกาศฟังก์ชันของภาษาเคแอนด์อาร์ซีไม่มีการระบุข้อมูลเกี่ยวกับอาร์กิวเมนต์ที่ใช้ ดังนั้นจึงไม่มีการตรวจชนิดข้อมูลพารามิเตอร์ของฟังก์ชัน แม้ว่าตัวแปลโปรแกรมบางตัวจะแสดงข้อความเตือน ถ้าฟังก์ชันถูกเรียกใช้ภายในโดยมีจํานวนอาร์กิวเมนต์ที่ผิด หรือถ้าฟังก์ชันถูกเรียกใช้หลายครั้งจากภายนอกโดยมีชนิดข้อมูลของอาร์กิวเมนต์ต่างกัน เครื่องมือภายนอกอาทิ ลินต์ (lint) ของยูนิกซ์ถูกพัฒนาขึ้นเพื่อให้สามารถตรวจสอบความคงเส้นคงวาของฟังก์ชันที่ใช้งานข้ามไฟล์รหัสต้นฉบับหลายไฟล์ หลายปีถัดจากการเผยแพร่ภาษาเคแอนด์อาร์ซี คุณลักษณะที่ไม่เป็นทางการหลายอย่างก็ถูกเพิ่มเข้ามาในภาษา ซึ่งรองรับโดยตัวแปลโปรแกรมจากเอทีแอนด์ทีและผู้ผลิตรายอื่น คุณลักษณะที่เพิ่มเหล่านี้เช่น ฟังก์ชัน void ฟังก์ชันที่คืนค่าเป็นชนิดข้อมูล struct หรือ union (แทนที่จะเป็นตัวชี้) การกําหนดค่าให้กับชนิดข้อมูล struct ชนิดข้อมูลแจงนับ (enumerated type) ส่วนขยายที่เพิ่มขึ้นอย่างมากและการขาดข้อตกลงในเรื่องไลบรารีมาตรฐาน อีกทั้งความนิยมในภาษาและข้อเท็จจริงที่ว่าไม่เพียงแต่ตัวแปลโปรแกรมยูนิกซ์เท่านั้นที่พัฒนาขึ้นตามข้อกําหนดของเคแอนด์อาร์ ทั้งหมดนําไปสู่ความสําคัญของการทําให้เป็นมาตรฐาน ภาษาแอนซีซีและภาษาไอโซซี ช่วงพุทธทศวรรษ 2520 ภาษาซีหลายรุ่นถูกพัฒนาขึ้นสําหรับเมนเฟรมคอมพิวเตอร์ มินิคอมพิวเตอร์ และไมโครคอมพิวเตอร์อย่างกว้างขวางรวมทั้งไอบีเอ็มพีซี ซึ่งความนิยมของมันเริ่มเพิ่มขึ้นอย่างมีนัยสําคัญ เมื่อ พ.ศ. 2526 สถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา (ANSI) ได้ก่อตั้งคณะกรรมการ เอกซ์3เจ11 ขึ้นมาเพื่อกําหนดมาตรฐานของภาษาซี ต่อมา พ.ศ. 2532 มาตรฐานดังกล่าวได้รับการอนุมัติเป็น ANSI X3.159-1989 "Programming Language C" ซึ่งภาษารุ่นนี้มักถูกอ้างถึงว่าเป็นภาษาแอนซีซี (ANSI C) ภาษาซีมาตรฐาน หรือภาษาซี89 (C89) ในบางครั้ง เมื่อ พ.ศ. 2533 องค์การระหว่างประเทศว่าด้วยการมาตรฐาน (ISO) ได้รับเอามาตรฐานแอนซีซี (พร้อมการเปลี่ยนแปลงการจัดรูปแบบ) มาเป็น ISO/IEC 9899:1990 ซึ่งบางครั้งก็ถูกเรียกว่าภาษาไอโซซี (ISO C) หรือภาษาซี90 (C90) ดังนั้นคําว่า "ซี89" กับ "ซี90" จึงหมายถึงภาษาโปรแกรมเดียวกัน แอนซีไม่ได้พัฒนามาตรฐานภาษาซีโดยเอกเทศอีกต่อไปแล้ว เหมือนเช่นองค์กรมาตรฐานแห่งชาติอื่น ๆ แต่ก็คล้อยตามมาตรฐานไอโซซี การรับเอามาตรฐานระดับชาติมาปรับปรุงเป็นมาตรฐานระดับสากล เกิดขึ้นภายในปีเดียวกับที่เผยแพร่มาตรฐานไอโซ จุดมุ่งหมายหนึ่งของกระบวนการสร้างมาตรฐานให้ภาษาซีคือเพื่อสร้างซูเปอร์เซตของภาษาเคแอนด์อาร์ซี ผสมผสานคุณลักษณะต่าง ๆ ที่ยังไม่เป็นทางการซึ่งแนะนําต่อกันมา คณะกรรมการมาตรฐานได้รวมคุณลักษณะหลายประการเพิ่มเข้ามาอาทิ ฟังก์ชันโพรโทไทป์ (ยืมมาจากภาษาซีพลัสพลัส), ตัวชี้ void, รองรับการจัดเรียงท้องถิ่น (locale) และชุดอักขระสากล, และการปรับปรุงตัวประมวลก่อนให้ดีขึ้น วากยสัมพันธ์สําหรับการประกาศพารามิเตอร์ถูกเพิ่มเข้ามาให้เหมือนกับรูปแบบที่ใช้ในภาษาซีพลัสพลัส แม้ว่าการเขียนแบบเคแอนด์อาร์ก็ยังสามารถใช้ได้เพื่อความเข้ากันได้กับรหัสต้นฉบับที่มีอยู่แล้ว ภาษาซีรุ่นนี้ยังคงรองรับในตัวแปลโปรแกรมในปัจจุบัน และรหัสภาษาซีส่วนใหญ่ที่เขียนขึ้นทุกวันนี้ก็ใช้พื้นฐานมาจากรุ่นนี้ โปรแกรมใด ๆ ที่เขียนขึ้นด้วยภาษาซีมาตรฐานโดยไร้สมมติฐานว่าขึ้นอยู่กับฮาร์ดแวร์ใด จะทํางานได้อย่างถูกต้องบนแพลตฟอร์มใดก็ตามด้วยการพัฒนาภาษาซีที่สอดคล้องกันภายในทรัพยากรที่จํากัด หากไม่ระมัดระวังเช่นนั้น โปรแกรมอาจแปลได้เฉพาะบนแพลตฟอร์มหนึ่งหรือด้วยตัวแปลตัวหนึ่งเท่านั้น อันเนื่องมาจากการใช้ไลบรารีไม่มาตรฐานเช่นไลบรารีส่วนต่อประสานกราฟิกกับผู้ใช้ก็ดี หรือความเชื่อมั่นต่อสมบัติเฉพาะของแพลตฟอร์มหรือตัวแปลหนึ่ง ๆ เช่นขนาดที่แท้จริงของชนิดข้อมูลหรือการลําดับข้อมูลไบต์ (endianness) ก็ดี ในกรณีที่ต้องเลือกว่ารหัสต้องถูกแปลด้วยตัวแปลภาษาซีมาตรฐานหรือภาษาเคแอนด์อาร์ซีอย่างใดอย่างหนึ่ง การใช้แมโคร สามารถช่วยให้แบ่งแยกรหัสส่วนมาตรฐานและส่วนเคแอนด์อาร์ออกจากกัน ซึ่งเป็นคุณลักษณะที่ได้เปรียบอีกอย่างหนึ่งที่มีเฉพาะในภาษาซีมาตรฐาน ภาษาซี99 หลังจากกระบวนการทําให้เป็นมาตรฐานของแอนซี/ไอโซแล้ว ข้อกําหนดภาษาซียังคงนิ่งอยู่ชั่วระยะเวลาหนึ่ง ในขณะที่ภาษาซีพลัสพลัสกําลังก่อตัวด้วยความพยายามทําให้เป็นมาตรฐานของมันเอง การเพิ่มเติมกฎเกณฑ์ครั้งที่ 1 สําหรับมาตรฐานภาษาซีเผยแพร่เมื่อ พ.ศ. 2538 เพื่อแก้ไขรายละเอียดบางจุดและเพิ่มการรองรับชุดอักขระสากลให้มากขึ้น ต่อมามาตรฐานภาษาซีถูกเรียบเรียงดัดแปลงใหม่และนําไปสู่การเผยแพร่ ISO/IEC 9899:1999 ออกสู่สาธารณชนใน พ.ศ. 2542 ซึ่งมักถูกอ้างถึงว่า "ซี99" (C99) มาตรฐานนี้มีการเพิ่มเติมกฎเกณฑ์แล้วสามครั้งโดย Technical Corrigenda ปัจจุบันมาตรฐานภาษาซีสากลดูแลและควบคุมโดยกลุ่ม ISO/IEC JTC1/SC22/WG14 ภาษาซี99ได้แนะนําคุณลักษณะใหม่หลายประการอาทิ ฟังก์ชันแบบแทรก (inline function) ชนิดข้อมูลใหม่หลายชนิด (เช่น long long int และ complex สําหรับจํานวนเชิงซ้อน) แถวลําดับความยาวแปรได้ (variable-length array) แมโครอาร์กิวเมนต์แปรได้ (variadic macro) และหมายเหตุในหนึ่งบรรทัดที่ขึ้นต้นด้วย // เหมือนภาษาบีซีพีแอลหรือภาษาซีพลัสพลัส ซึ่งคุณลักษณะส่วนใหญ่เคยพัฒนาไว้แล้วเป็นส่วนขยายของตัวแปลภาษาซีหลายโปรแกรม ภาษาซี99สามารถเข้ากันได้แบบย้อนหลังกับภาษาซี90เป็นส่วนใหญ่ แต่ก็จํากัดมากขึ้นในบางแง่มุม โดยเฉพาะการประกาศโดยไม่ระบุชนิด จะไม่ถูกสมมติว่าเป็น int อีกต่อไป แมโครมาตรฐาน __STDC_VERSION__ ถูกนิยามขึ้นด้วยค่า 199901L เพื่อแสดงว่ารหัสนั้นรองรับภาษาซี99 ขณะนี้ จีซีซี ซันสตูดิโอ และตัวแปลโปรแกรมอื่น ๆ ก็รองรับคุณลักษณะใหม่ของภาษาซี99เป็นจํานวนมากหรือทั้งหมดแล้ว ภาษาซี1เอกซ์ เมื่อ พ.ศ. 2550 มีกลุ่มทํางานหนึ่งเริ่มต้นขึ้นเพื่อปรับปรุงมาตรฐานภาษาซีอีกรุ่น ซึ่งเรียกชื่ออย่างไม่เป็นทางการว่า "ซี1เอกซ์" (C1X) คณะกรรมการนี้รับเอาแนวคิดต่าง ๆ เพื่อจํากัดการเลือกคุณลักษณะใหม่ที่ยังไม่เคยมีการทดสอบพัฒนามาก่อน การใช้งาน การเขียนโปรแกรมระบบเป็นการใช้งานหลักของภาษาซี ซึ่งรวมไปถึงการพัฒนาระบบปฏิบัติการและโปรแกรมประยุกต์ระบบฝังตัว เนื่องจากลักษณะเฉพาะอันเป็นที่ต้องการถูกรวมเข้าไว้ด้วยกัน อย่างเช่น ความสามารถในเคลื่อนย้ายได้กับประสิทธิภาพของรหัสต้นฉบับ ความสามารถในการเข้าถึงที่อยู่ของฮาร์ดแวร์ที่ระบุ ความสามารถเรื่อง type punning เพื่อให้เข้ากับความต้องการการเข้าถึงข้อมูลที่กําหนดไว้จากภายนอก และความต้องการทรัพยากรระบบขณะทํางานต่ํา ภาษาซีสามารถใช้เขียนโปรแกรมเว็บไซต์โดยใช้ซีจีไอเป็น "เกตเวย์" เพื่อแลกเปลี่ยนสารสนเทศระหว่างเว็บแอปพลิเคชัน เซิร์ฟเวอร์ และเบราว์เซอร์ ปัจจัยบางอย่างที่ทําให้เลือกภาษาซีแทนที่จะเป็นภาษาอินเทอร์พรีตเตอร์ คือความเร็ว เสถียรภาพ และความอ่อนไหวต่อการเปลี่ยนแปลงในสภาพแวดล้อมของการดําเนินงาน เนื่องจากเป็นธรรมชาติของภาษาคอมไพเลอร์ ผลจากการยอมรับในระดับกว้างขวางและประสิทธิภาพของภาษาซี ทําให้ตัวแปลโปรแกรม ตัวแปลคําสั่ง ไลบรารีต่าง ๆ ของภาษาอื่น มักพัฒนาขึ้นด้วยภาษาซี ตัวอย่างเช่น ตัวแปลโปรแกรมภาษาไอเฟลหลายโปรแกรมส่งข้อมูลออกเป็นรหัสภาษาซีเป็นภาษากลาง เพื่อส่งต่อให้ตัวแปลโปรแกรมภาษาซีต่อไป การพัฒนาสายหลักของภาษาไพทอน ภาษาเพิร์ล 5 และภาษาพีเอชพี ทั้งหมดถูกเขียนขึ้นด้วยภาษาซี ภาษาซีมีประสิทธิภาพสําหรับคอมพิวเตอร์เพื่องานคํานวณและวิทยาศาสตร์ เนื่องจากความสิ้นเปลืองต่ํา ธรรมชาติของภาษาระดับต่ํา ธรรมชาติของภาษาที่ถูกแปล และมีส่วนคณิตศาสตร์ที่ดีในไลบรารีมาตรฐาน ตัวอย่างของการใช้ภาษาซีในงานคํานวณและวิทยาศาสตร์ เช่นจีเอ็มพี ไลบรารีวิทยาศาสตร์ของกนู แมเทอแมติกา แมตแล็บ และแซส ภาษาซีบางครั้งใช้เป็นภาษาระหว่างกลางในการทําให้เกิดผลของภาษาอื่น แนวคิดนี้อาจใช้เพื่อความสะดวกต่อการเคลื่อนย้าย โดยให้ภาษาซีเป็นภาษาระหว่างกลาง ซึ่งไม่จําเป็นต้องพัฒนาตัวสร้างรหัสแบบเจาะจงเครื่อง ตัวแปลโปรแกรมที่ใช้ภาษาซีในทางนี้เช่น บิตซี แกมบิต จีเอชซี สควีก และวาลา เป็นต้น อย่างไรก็ตามภาษาซีถูกออกแบบมาเพื่อเป็นภาษาเขียนโปรแกรม ไม่ใช่ภาษาเป้าหมายของตัวแปลโปรแกรม จึงเหมาะสมน้อยกว่าสําหรับการใช้เป็นภาษาระหว่างกลาง ด้วยเหตุผลนี้นําไปสู่การพัฒนาภาษาระหว่างกลางที่มีพื้นฐานบนภาษาซีเช่น ภาษาซีไมนัสไมนัส ผู้ใช้ขั้นปลายใช้ภาษาซีอย่างแพร่หลายเพื่อสร้างแอปพลิเคชันของผู้ใช้เอง แต่เมื่อแอปพลิเคชันใหญ่ขึ้น การพัฒนาเช่นนั้นมักจะย้ายไปทําในภาษาอื่นที่พัฒนามาด้วยกัน เช่นภาษาซีพลัสพลัส ภาษาซีชาร์ป ภาษาวิชวลเบสิก เป็นต้น วากยสัมพันธ์ รหัสต้นฉบับของภาษาซีมีรูปแบบอิสระ ซึ่งสามารถใช้อักขระช่องว่างเท่าใดก็ได้ในรหัส มากกว่าที่จะถูกจํากัดด้วยคอลัมน์หรือบรรทัดข้อความอย่างภาษาฟอร์แทรน 77 ข้อความหมายเหตุจะปรากฏระหว่างตัวคั่น /* และ */ (แบบดั้งเดิม) หรือตามหลัง // จนกว่าจะจบบรรทัด (ภาษาซี99 เป็นต้นไป) รหัสต้นฉบับแต่ละไฟล์ประกอบด้วยการประกาศและการนิยามฟังก์ชันต่าง ๆ และการนิยามฟังก์ชันก็ประกอบด้วยการประกาศและข้อความสั่งต่าง ๆ ภายในอีกด้วย การประกาศอาจกําหนดชนิดข้อมูลใหม่โดยใช้คําหลักเช่น struct, union และ enum หรือกําหนดค่าของชนิดข้อมูลและอาจสงวนเนื้อที่สํารองให้กับตัวแปรใหม่ โดยการเขียนชื่อของชนิดข้อมูลตามด้วยชื่อตัวแปร คําหลักอาทิ char และ int เป็นชนิดข้อมูลพื้นฐานที่มากับภาษา ส่วนต่าง ๆ ของรหัสถูกคลุมด้วยวงเล็บปีกกา { กับ } เพื่อจํากัดขอบเขตของการประกาศ และเพื่อกระทําเสมือนข้อความสั่งเดียวสําหรับโครงสร้างการควบคุม ภาษาซีใช้ ข้อความสั่ง (statement) ในการระบุการกระทําเช่นเดียวกับภาษาเชิงคําสั่งอื่น ข้อความสั่งที่สามัญที่สุดคือ ข้อความสั่งนิพจน์ (expression statement) ซึ่งประกอบด้วยนิพจน์ที่จะถูกนําไปประเมินค่า ตามด้วยอัฒภาค ; จากผลข้างเคียงของการประเมินค่า ฟังก์ชันหลายฟังก์ชันอาจถูกเรียกใช้และตัวแปรหลายตัวอาจถูกกําหนดค่าใหม่ ภาษาซีได้เตรียมข้อความสั่งสําหรับควบคุมการไหลของโปรแกรมไว้หลายข้อความซึ่งดูได้จากคําสงวนต่าง ๆ ตัวอย่างเช่น การใช้ if-else เพื่อการทํางานแบบมีเงื่อนไข และการใช้ do-while, while และ for เพื่อการทํางานแบบวนรอบ เพื่อปรับเปลี่ยนการทํางานอันเป็นลําดับปกติ เป็นสิ่งที่รองรับสําหรับการเขียนโปรแกรมเชิงโครงสร้าง สําหรับข้อความสั่ง for นั้นมีนิพจน์ของการกําหนดค่าเริ่มต้น การทดสอบเงื่อนไข และการกําหนดค่ารอบใหม่ทั้งสามอย่างในตัวเอง ซึ่งสามารถละเว้นนิพจน์ใดก็ได้ ข้อความสั่ง break และ continue สามารถใช้ภายในการทํางานแบบวนรอบ เพื่อหยุดการวนรอบ หรือข้ามไปยังการกําหนดค่ารอบใหม่ทันทีตามลําดับ นอกจากนี้ยังมีข้อความสั่งที่ไม่เป็นเชิงโครงสร้างคือ goto ซึ่งจะทําให้การไหลของโปรแกรมข้ามไปยังป้าย (label) ที่ตั้งชื่อไว้ทันทีภายในฟังก์ชัน ข้อความสั่ง switch และ case ใช้สําหรับพิจารณาทางเลือกของการทํางานโดยพิจารณานิพจน์ที่เป็นจํานวนเต็ม นิพจน์ต่าง ๆ สามารถใช้ตัวดําเนินการที่มีมากับภาษาได้หลากหลาย (ดูด้านล่าง) และอาจมีการเรียกใช้ฟังก์ชัน อาร์กิวเมนต์ของฟังก์ชันและตัวถูกดําเนินการของตัวดําเนินการส่วนใหญ่ที่จะถูกประเมินค่านั้นไม่มีการระบุลําดับ การประเมินค่าจึงอาจแทรกซ้อนกันก็ได้ อย่างไรก็ตามผลกระทบที่เกิดขึ้นทั้งหมด (รวมทั้งที่เก็บข้อมูลตัวแปร) จะปรากฏก่อน จุดลําดับ (sequence point) ถัดไป จุดลําดับนั้นคือจุดสิ้นสุดของข้อความสั่งของแต่ละนิพจน์ และจุดที่เข้าและออกจากการเรียกใช้ฟังก์ชัน จุดลําดับก็ยังเกิดขึ้นระหว่างการประเมินค่านิพจน์ที่มีตัวดําเนินการบางชนิด (เช่น &&, ||, ?: และตัวดําเนินการจุลภาค) สิ่งนี้ทําให้การปรับแต่งรหัสจุดหมายให้เหมาะสมทําได้ในระดับสูง ซึ่งไม่จําเป็นต้องให้โปรแกรมเมอร์ภาษาซีใส่ใจมากนักเพื่อให้ได้ผลลัพธ์ที่เชื่อถือได้ ในขณะที่จําเป็นสําหรับภาษาโปรแกรมอื่น ถึงแม้ว่าวากยสัมพันธ์ของภาษาซีจะถูกเลียนแบบโดยภาษาอื่นหลายภาษาเพราะว่าความเคยชินอย่างกว้างขวาง แต่ก็ถูกวิพากษ์วิจารณ์บ่อยครั้ง ตัวอย่างเช่น เคอร์นิกันและริตชีได้กล่าวในบทนําของ เดอะซีโปรแกรมมิงแลงกวิจ ไว้ว่า "ภาษาซีก็มีตําหนิของมันเหมือนภาษาอื่นใด ตัวดําเนินการบางตัวมีสิทธิการทําก่อนที่ผิด วากยสัมพันธ์บางส่วนสามารถทําให้ดีกว่านี้" ปัญหาเฉพาะบางอย่างที่ควรหมายเหตุไว้มีดังนี้ ไม่มีการตรวจสอบจํานวนและชนิดของอาร์กิวเมนต์ เมื่อการประกาศฟังก์ชันมีรายการพารามิเตอร์ว่าง (สิ่งนี้เพื่อความเข้ากันได้ย้อนหลังกับภาษาเคแอนด์อาร์ซี ซึ่งไม่มีโพรโทไทป์) ทางเลือกที่น่าสงสัยของสิทธิการทําก่อนของตัวดําเนินการ ดังที่กล่าวถึงโดยเคอร์นิกันและริตชีข้างต้น เช่น == ที่วางอยู่ติดกับ & และ | ในนิพจน์ดังตัวอย่าง x & 1 == 0 ตัวดําเนินการ == จะทําก่อนซึ่งไม่ใช่ผลที่คาดไว้ จําเป็นต้องใส่วงเล็บเพิ่ม (x & 1) == 0 เพื่อให้ & ทําก่อนตามต้องการ ตัวดําเนินการ = ซึ่งใช้แสดงภาวะเท่ากันในคณิตศาสตร์ แต่ในภาษาซีใช้เพื่อการกําหนดค่าของตัวแปร โดยใช้ตามแบบที่มีอยู่ก่อนในภาษาฟอร์แทรน ภาษาพีแอล/วัน และภาษาเบสิก ไม่เหมือนภาษาอัลกอลและภาษาต่อยอดของมัน ริตชีตั้งใจเลือกรูปแบบนี้ด้วยเหตุผลหลักว่า อาร์กิวเมนต์ของการกําหนดค่าเกิดขึ้นบ่อยกว่าการเปรียบเทียบ ความคล้ายกันของตัวดําเนินการกําหนดค่าและการเปรียบเทียบภาวะเท่ากัน (= และ ==) ทําให้เกิดความผิดพลาดจากการใช้เครื่องหมายผิดได้ง่าย ในหลายกรณีเครื่องหมายถูกใช้ในบริบทของอีกอันหนึ่งโดยไม่มีความผิดพลาดขณะแปล (แม้ว่าตัวแปลโปรแกรมปกติจะสร้างข้อความเตือนขึ้นมา) ตัวอย่างเช่น นิพจน์เงื่อนไขภายใน if (a = b) จะเป็นจริงถ้า a มีค่าไม่เป็นศูนย์หลังจากการกําหนดค่า อย่างไรก็ตาม ข้อบกพร่องนี้อาจมีประโยชน์สําหรับการเขียนรหัสอย่างย่อในบางกรณี การขาดตัวดําเนินการเติมกลางสําหรับวัตถุซับซ้อนหลายชนิด โดยเฉพาะการดําเนินการสายอักขระ ทําให้โปรแกรมที่ขึ้นอยู่กับการดําเนินการเหล่านี้มีขนาดใหญ่กว่าที่ควรเป็น (เพราะต้องสร้างฟังก์ชันขึ้นเอง) และทําให้รหัสอ่านยากขึ้นด้วย รูปแบบของการประกาศที่บางครั้งไม่เป็นไปตามสามัญสํานึก โดยเฉพาะตัวชี้ฟังก์ชัน (แนวคิดของริตชีคือการประกาศตัวระบุในบริบทที่สัมพันธ์กับการใช้งานของมัน) ตัวดําเนินการ ภาษาซีรองรับตัวดําเนินการหลายประเภท ซึ่งเป็นสัญลักษณ์ที่ใช้ในนิพจน์เพื่อระบุการจัดการที่จะถูกทําให้เกิดผล ระหว่างการประเมินค่าของนิพจน์นั้น ภาษาซีมีตัวดําเนินการต่อไปนี้ พีชคณิต (+, -, *, /, %) การกําหนดค่า (=) การกําหนดค่าแต่งเติม (+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=) ตรรกะระดับบิต (~, &, |, ^) การเลื่อนระดับบิต (<<, >>) ตรรกะแบบบูล (!, &&, ||) การประเมินค่าเชิงเงื่อนไข (?:) การทดสอบภาวะเท่ากัน (==, !=) การรวมอาร์กิวเมนต์ฟังก์ชัน (( )) การเพิ่มค่าและการลดค่า (++, --) การเลือกสมาชิกในวัตถุ (., ->) ขนาดของวัตถุ (sizeof) ความสัมพันธ์เชิงอันดับ (<, <=, >, >=) การอ้างอิงและการถูกอ้างอิง (&, *, [ ]) การลําดับ (,) การจัดกลุ่มนิพจน์ย่อย (( )) การแปลงชนิดข้อมูล (( )) ภาษาซีมีไวยากรณ์รูปนัยซึ่งระบุโดยมาตรฐานภาษาซี การแปลงจํานวนเต็ม จํานวนจุดลอยตัว และการปัดเศษ วากยสัมพันธ์ของการแปลงชนิดข้อมูลสามารถใช้แปลงค่าต่าง ๆ ระหว่างชนิดข้อมูลจํานวนเต็มและจํานวนจุดลอยตัว (จํานวนทศนิยม) หรือระหว่างจํานวนเต็มสองจํานวน หรือระหว่างจํานวนจุดลอยตัวสองจํานวนที่มีขนาดแตกต่างกัน ตัวอย่างเช่น (long int)sqrt(1000.0), (double)(256*256) หรือ (float)sqrt(1000.0) เป็นต้น การแปลงชนิดข้อมูลเป็นภาวะปริยายในหลายบริบทอาทิ เมื่อกําหนดค่าให้กับตัวแปรหรือพารามิเตอร์ของฟังก์ชัน หรือเมื่อใช้จํานวนจุดลอยตัวเป็นดัชนีของเวกเตอร์ หรือในการดําเนินการทางเลขคณิตที่มีตัวถูกดําเนินการเป็นข้อมูลคนละชนิดกัน การแปลงค่าระหว่างจํานวนเต็มและจํานวนจุดลอยตัวโดยทั่วไป จะเกิดการเปลี่ยนแปลงการเข้ารหัสระดับบิตไปยังขอบเขตที่เป็นไปได้เพื่อสงวนค่าจํานวนของตัวถูกดําเนินการนั้น ไม่เหมือนกับการแปลงชนิดข้อมูลกรณีอื่น (ซึ่งการเข้ารหัสระดับบิตของตัวถูกดําเนินการจะถูกตีความใหม่ตามชนิดเป้าหมายเพียงเท่านั้น) โดยเฉพาะอย่างยิ่ง การแปลงชนิดข้อมูลจากจํานวนเต็มไปเป็นจํานวนจุดลอยตัวจะคงไว้ซึ่งค่าจํานวนได้อย่างถูกต้อง เว้นแต่ถ้าจํานวนบิตในชนิดเป้าหมายมีไม่เพียงพอ กรณีดังกล่าวจะทําให้บิตที่มีนัยสําคัญน้อยที่สุดสูญหายไป ส่วนการแปลงชนิดข้อมูลจากจํานวนจุดลอยตัวไปเป็นจํานวนเต็มจะเกิดการตัดค่าหลังจุดทศนิยมอย่างหลีกเลี่ยงไม่ได้ (ค่าถูกปัดเศษเข้าหาศูนย์) สําหรับการปัดเศษชนิดอื่น ภาษซี99ได้ระบุไว้แล้วในฟังก์ชันดังนี้ (ใน <math.h>) round(): ปัดเศษไปยังจํานวนเต็มที่ใกล้สุด rint(), nearbyint(): ปัดเศษตามทิศทางของจํานวนจุดลอยตัวปัจจุบัน ceil(): ค่าจํานวนเต็มน้อยสุดที่ไม่น้อยกว่าอาร์กิวเมนต์ (ปัดขึ้น) ดูเพิ่มที่ฟังก์ชันเพดาน floor(): ค่าจํานวนเต็มมากสุดที่ไม่มากกว่าอาร์กิวเมนต์ (ปัดลง) ดูเพิ่มที่ฟังก์ชันพื้น trunc(): ปัดเศษเข้าหาศูนย์ (เหมือนกับการแปลงชนิดข้อมูลเป็นจํานวนเต็ม) ฟังก์ชันทั้งหมดนี้รับอาร์กิวเมนต์ double และคืนค่าเป็น double ซึ่งต่อจากนี้ก็อาจแปลงชนิดข้อมูลเป็นจํานวนเต็มอีกทีหากจําเป็น การแปลงชนิดข้อมูลจาก float ไปเป็น double จะคงไว้ซึ่งค่าจํานวนได้อย่างถูกต้อง ในขณะที่การแปลงกลับ ค่าจะถูกปัดเศษซึ่งมักเป็นการปัดเศษเข้าหาศูนย์ เพื่อให้พอดีกับจํานวนบิตที่น้อยลง (เนื่องจาก float ก็มีช่วงเลขชี้กําลังที่น้อยกว่าด้วย การแปลงชนิดข้อมูลอาจให้ผลเป็นค่าอนันต์แทน) ตัวแปลโปรแกรมบางโปรแกรมจะแปลงค่าของ float ไปเป็น double โดยเบื้องหลังในบางบริบทเช่น พารามิเตอร์ของฟังก์ชันที่ประกาศเป็น float ตามความเป็นจริงอาจส่งค่าเป็น double ก็ได้ เครื่องที่ทําตามมาตรฐานจํานวนจุดลอยตัวของ IEEE เหตุการณ์การปัดเศษบางเหตุการณ์มีผลมาจากสถานะการปัดเศษปัจจุบัน (ได้แก่การปัดเศษเลขคู่ การปัดเศษขึ้น การปัดเศษลง และการปัดเศษเข้าหาศูนย์) ซึ่งอาจเรียกดูหรือตั้งค่าสถานะโดยใช้ฟังก์ชัน fegetround()/fesetround() ที่นิยามไว้ใน <fenv.h> ตัวอย่างโปรแกรม "Hello World" ตัวอย่างโปรแกรม "เฮลโลเวิลด์" ซึ่งปรากฏอยู่ในหนังสือ เดอะซีโปรแกรมมิงแลงกวิจ ที่พิมพ์ครั้งแรก กลายมาเป็นตัวแบบของโปรแกรมเกริ่นนําในตําราการเขียนโปรแกรมส่วนใหญ่หากไม่คํานึงถึงภาษาที่ใช้เขียน โปรแกรมดังกล่าวจะแสดงผล "hello world" ทางอุปกรณ์ส่งออกมาตรฐาน ซึ่งมักจะเป็นเครื่องปลายทางหรือหน่วยแสดงผลจอภาพ รหัสโปรแกรมรุ่นดั้งเดิมเป็นดังนี้ main() { printf("hello world "); } และหลังจากการปรับเปลี่ยนรหัสให้เข้ากับมาตรฐาน รหัสจึงเป็นดังนี้ #include <stdio.h> int main(void) { printf("hello world "); return 0; } บรรทัดแรกของโปรแกรมเป็นคําสั่งชี้แนะตัวประมวลผลก่อน (preprocessing directive) แสดงไว้โดย #include ทําให้ตัวประมวลผลก่อน (อันเป็นเครื่องมืออย่างแรกที่พิจารณารหัสต้นฉบับขณะแปล) นําเนื้อหาข้อความทั้งหมดของไฟล์ส่วนหัวมาตรฐาน stdio.h เข้ามาแทนที่บรรทัดนั้น ซึ่งไฟล์ดังกล่าวมีการประกาศฟังก์ชันสําหรับอุปกรณ์นําเข้าและส่งออกมาตรฐานอาทิ printf วงเล็บแหลมที่คลุมชื่อไฟล์ stdio.h (ซึ่งความจริงคือเครื่องหมายน้อยกว่า-มากกว่า) เป็นการแสดงว่า stdio.h ถูกกําหนดที่ตั้งโดยใช้กลยุทธ์การค้นหาที่ให้ความสําคัญต่อไฟล์ส่วนหัวมาตรฐาน มากกว่าไฟล์ส่วนหัวอื่นที่มีชื่อเดียวกัน อัญประกาศคู่อาจใช้ได้ในกรณีที่ต้องการนําไฟล์ส่วนหัวที่อยู่ใกล้เคียงหรือเจาะจงโครงการเข้ามารวม บรรทัดถัดมาเป็นการนิยามฟังก์ชันชื่อว่า main ฟังก์ชัน main เป็นฟังก์ชันที่มีจุดประสงค์พิเศษในโปรแกรมภาษาซี สภาพแวดล้อมขณะทํางานจะเรียกใช้ฟังก์ชัน main เพื่อเริ่มต้นการทํางานโปรแกรม ตัวระบุชนิด int เป็นตัวแสดงว่า ค่าส่งคืน ที่ถูกส่งคืนโดยตัวที่เรียกใช้ (กรณีนี้คือสภาพแวดล้อมขณะทํางาน) จะเป็นจํานวนเต็มค่าหนึ่ง อันเป็นผลจากการประเมินค่าของฟังก์ชัน main คําหลัก void ในรายการพารามิเตอร์แสดงว่าฟังก์ชัน main ไม่ต้องใช้อาร์กิวเมนต์ วงเล็บปีกกาเปิดหมายถึงจุดเริ่มต้นของการนิยามฟังก์ชัน main บรรทัดถัดมาเป็นการ เรียกใช้ ฟังก์ชันที่ชื่อว่า printf ซึ่งประกาศไว้ใน stdio.h และจัดเตรียมขึ้นจากไลบรารีของระบบ ในการเรียกใช้ครั้งนี้ ฟังก์ชัน printf จะถูก ผ่านค่า ด้วยอาร์กิวเมนต์หนึ่งตัวคือตําแหน่งหน่วยความจําของอักขระตัวแรกในสายอักขระ "hello world " สายอักขระดังกล่าวคือแถวลําดับที่ไม่มีชื่ออันประกอบด้วยชนิดข้อมูล char จะถูกสร้างขึ้นโดยอัตโนมัติโดยตัวแปลโปรแกรม และแถวลําดับจะมีอักขระค่าศูนย์ (null) เป็นสิ่งที่บ่งบอกจุดสิ้นสุดของสายอักขระ (printf จําเป็นต้องทราบสิ่งนี้) ที่ปรากฏในสายอักขระคือ ลําดับการหลีก (escape sequence) ภาษาซีจะตีความว่าเป็นอักขระขึ้นบรรทัดใหม่ (newline) ซึ่งจะทําให้อุปกรณ์ส่งออกทราบว่าถึงจุดสิ้นสุดของบรรทัดปัจจุบัน ค่าส่งคืนจากฟังก์ชัน printf คือชนิด int แต่มันถูกละทิ้งไปอย่างเงียบ ๆ เนื่องจากไม่มีการใช้ (โปรแกรมที่ระมัดระวังมากกว่าอาจทดสอบค่าส่งคืน เพื่อพิจารณาว่าผลจากการทํางานของฟังก์ชัน printf สําเร็จหรือไม่) อัฒภาค ; เป็นจุดสิ้นสุดข้อความสั่ง ข้อความสั่ง return เป็นการสิ้นสุดการทํางานของฟังก์ชัน main และทําให้ฟังก์ชันส่งกลับเป็นจํานวนเต็มค่า 0 ซึ่งสภาพแวดล้อมขณะทํางานจะตีความว่าเป็นรหัสออกจากโปรแกรมที่แสดงว่าการทํางานประสบผลสําเร็จ วงเล็บปีกกาปิดหมายถึงจุดสิ้นสุดของการนิยามฟังก์ชัน main ชนิดข้อมูล ภาษาซีมีระบบชนิดตัวแปรแบบไม่เคร่งครัด ซึ่งมีความคล้ายคลึงบางประการร่วมกับภาษาลูกของภาษาอัลกอล อาทิ ภาษาปาสกาล ภาษาซีมีชนิดตัวแปรที่เตรียมไว้แล้วสําหรับจํานวนเต็มหลายขนาด แบบทั้งมีเครื่องหมายและไม่มีเครื่องหมาย จํานวนจุดลอยตัว ตัวอักขระ และชนิดข้อมูลแจงนับ (enum) ในภาษาซี99 ได้เพิ่มชนิดตัวแปรแบบบูลเข้าไปด้วย ภาษาซีก็ยังมีชนิดตัวแปรที่รับทอดมาด้วยเช่นแถวลําดับ ตัวชี้ ระเบียน (struct) และยูเนียน (union) ภาษาซีมักใช้กับการเขียนโปรแกรมระบบในระดับต่ํา ซึ่งอาจหลบเลี่ยงการใช้ระบบชนิดตัวแปรเมื่อจําเป็น ตัวแปลโปรแกรมจะพยายามทําให้แน่ใจว่า ชนิดตัวแปรถูกใช้อย่างถูกต้องในนิพจน์ส่วนใหญ่ แต่โปรแกรมเมอร์ก็สามารถลบล้างการตรวจสอบเช่นนั้นได้หลายทาง อาทิ การโยนชนิดข้อมูล (type cast) เพื่อแปลงค่าจากชนิดหนึ่งไปเป็นชนิดหนึ่งอย่างชัดเจน หรือการใช้ตัวชี้หรือยูเนียนเพื่อแปลความหมายบิตของค่าที่อยู่ภายในไปเป็นอีกชนิดหนึ่ง ตัวชี้ ภาษาซีรองรับการใช้งานตัวชี้ (pointer) ซึ่งเป็นชนิดข้อมูลสําหรับการอ้างอิงอย่างง่ายชนิดหนึ่ง ที่เก็บบันทึกที่อยู่หรือตําแหน่งของวัตถุหรือฟังก์ชันในหน่วยความจํา ตัวชี้สามารถ อ้างอิงกลับ (dereference) เพื่อเข้าถึงข้อมูลที่บันทึกในตําแหน่งที่ถูกชี้อยู่ หรือเพื่อเรียกใช้ฟังก์ชันที่ถูกชี้อยู่ ตัวชี้สามารถจัดดําเนินการกําหนดค่าและเลขคณิตของตัวชี้ได้ด้วย ค่าของตัวชี้ขณะโปรแกรมทํางาน มักจะเป็นตําแหน่งมูลฐานในหน่วยความจํา (ซึ่งอาจเสริมด้วยค่าออฟเซตในหน่วยเวิร์ด) แต่เนื่องจากตัวชี้มีการระบุชนิดตามข้อมูลที่ชี้ไป ตัวแปลโปรแกรมจึงสามารถตรวจสอบชนิดตัวแปรในนิพจน์ต่าง ๆ รวมทั้งตัวชี้ด้วยกันเองขณะแปลได้ เลขคณิตของตัวชี้จะแปรสัดส่วนของขนาดโดยอัตโนมัติตามชนิดข้อมูลที่ชี้ไป (ดูเพิ่มที่ส่วนความใช้แทนกันได้ระหว่างตัวชี้และแถวลําดับ) จุดประสงค์ของการใช้ตัวชี้มีหลากหลายในภาษาซีเช่น สายอักขระมักจัดดําเนินการโดยใช้ตัวชี้ไปยังแถวลําดับของตัวอักขระ การจัดสรรหน่วยความจําพลวัต (dynamic memory allocation) สามารถกระทําได้ด้วยตัวชี้ ชนิดข้อมูลชนิดอื่นเช่น ต้นไม้ ปกติจะถูกพัฒนาขึ้นโดยการจัดสรรวัตถุ struct โดยพลวัต ซึ่งเชื่อมโยงแต่ละหน่วยเข้ากันด้วยตัวชี้ ตัวชี้ของฟังก์ชันใช้เพื่อการเรียกกลับ (callback) สําหรับชุดคําสั่งจัดการเหตุการณ์ เป็นต้น ตัวชี้ว่าง (null pointer) คือตัวชี้ที่ชี้ไปยังตําแหน่งที่ใช้งานไม่ได้ ซึ่งจะมีค่าเป็น 0 การอ้างอิงกลับของตัวชี้ว่างจึงไม่มีความหมาย และโดยทั่วไปให้ผลเป็นข้อผิดพลาดขณะทํางาน อย่างไรก็ตามตัวชี้ว่างก็มีประโยชน์สําหรับกรณีพิเศษเช่น ใช้เป็นจุดสิ้นสุดหน่วยสุดท้ายของรายการโยง ซึ่งหมายความว่าไม่มีตัวชี้ไปหน่วยอื่นแล้ว หรือใช้แจ้งข้อผิดพลาดจากฟังก์ชันที่คืนค่าเป็นตัวชี้ ตัวชี้ว่างในการลงรหัสมักจะนําเสนอด้วย 0 หรือ NULL ตัวชี้วอยด์ (void *) คือตัวชี้ของวัตถุที่ไม่ทราบชนิดตัวแปร ดังนั้นจึงสามารถใช้เป็นตัวชี้ "ทั่วไป" ก็ได้ แต่เนื่องจากขนาดและชนิดของวัตถุที่ถูกชี้ไม่เป็นที่ทราบ ตัวชี้วอยด์จึงไม่สามารถอ้างอิงกลับได้ และเลขคณิตของตัวชี้ก็ใช้กับตัวชี้วอยด์ไม่ได้ แม้ว่าตัวชี้ของวัตถุชนิดหนึ่งอาจแปลงเป็นตัวชี้ชนิดอื่นได้โดยง่าย (และในหลายบริบทก็แปลงได้อย่างคลุมเครือ) การใช้งานตัวชี้อย่างไม่ระมัดระวังอาจเกิดอันตรายได้ เนื่องจากตัวแปรตัวชี้สามารถชี้ไปที่ตําแหน่งใดก็ได้โดยไม่มีกฎเกณฑ์ และปกติก็ไม่มีการตรวจสอบ ซึ่งอาจทําให้เกิดผลกระทบที่ไม่พึงปรารถนา ถึงแม้ตัวชี้ที่ใช้งานอย่างถูกต้องได้ชี้ไปยังตําแหน่งที่ปลอดภัยอยู่แล้ว แต่มันก็อาจถูกทําให้ชี้ไปยังตําแหน่งที่ไม่ปลอดภัยโดยการดําเนินการเลขคณิตที่ไม่ถูกต้อง หรือตัวชี้ไปยังวัตถุที่อาจเรียกคืนการจัดสรรไปแล้วแต่ถูกเรียกใช้ใหม่ (ตัวชี้อย่างหลวม dangling pointer) หรือตัวชี้ที่อาจใช้งานโดยไม่กําหนดค่าเริ่มต้น (ตัวชี้ตัวแทน wild pointer) หรือตัวชี้ที่อาจถูกกําหนดด้วยค่าที่ไม่ปลอดภัยโดยตรง ด้วยวิธีโยนชนิดตัวแปร ยูเนียน หรือผ่านค่ามาจากตัวชี้อื่นที่เสีย เป็นต้น โดยทั่วไปภาษาซีอนุญาตให้จัดดําเนินการและแปลงชนิดตัวแปรของตัวชี้ได้ แม้ว่าตัวแปลโปรแกรมก็มีตัวเลือกสําหรับการตรวจสอบอยู่หลายระดับก็ตาม ภาษาโปรแกรมอื่นบางภาษาจัดการปัญหานี้โดยกําหนดให้ใช้ชนิดตัวแปรอ้างอิงที่เคร่งครัดมากกว่า แถวลําดับ ชนิดข้อมูลแถวลําดับ (array) ในภาษาซีแบบดั้งเดิมมีขนาดคงที่และสถิต ซึ่งจะถูกกําหนดตอนแปลโปรแกรม (ในเวลาถัดมา มาตรฐานภาษาซี99 อนุญาตให้สร้างแถวลําดับที่มีความยาวแปรได้) อย่างไรก็ตามแถวลําดับสามารถกําหนดให้จัดสรรเนื้อที่หน่วยความจําขนาดใดก็ได้ขณะทํางาน โดยใช้ฟังก์ชัน malloc จากไลบรารีมาตรฐาน แล้วทําให้เป็นแถวลําดับ การทําให้เป็นหนึ่งเดียวระหว่างแถวลําดับและตัวชี้ของภาษาซี ทําให้หมายความว่าแถวลําดับที่แท้จริงและแถวลําดับที่จัดสรรอย่างพลวัตเสมือนใช้แทนกันได้ เนื่องด้วยแถวลําดับเข้าถึงผ่านตัวชี้เสมอ (ในทางปฏิบัติ) การเข้าถึงแถวลําดับจึงไม่มีการตรวจสอบขนาดภายใต้แถวลําดับ แม้ว่าตัวแปลโปรแกรมอาจมีตัวเลือกสําหรับตรวจสอบขอบเขตก็ตาม การใช้งานเกินขอบเขตของแถวลําดับจึงยังคงสามารถเป็นไปได้ ซึ่งเกิดขึ้นค่อนข้างเป็นปกติในรหัสที่เขียนอย่างไม่ระมัดระวัง และนําไปสู่ผลสะท้อนกลับหลายอย่างอาทิ การเข้าถึงหน่วยความจําที่ไม่อนุญาต การทําให้ข้อมูลผิดแปลกไป บัฟเฟอร์ส่วนล้น และสิ่งผิดปรกติขณะทํางาน ถึงแม้ภาษาซีรองรับแถวลําดับแบบสถิต แต่ก็ไม่จําเป็นว่าดัชนีของแถวลําดับจะต้องมีผล (การตรวจสอบขอบเขต) ตัวอย่างเช่น เราสามารถลองบันทึกค่าสมาชิกตัวที่หกลงในแถวลําดับที่มีสมาชิกห้าตัวได้ ซึ่งจะทําให้เกิดผลที่ไม่คาดคิด ความผิดพลาดเช่นนี้เรียกว่า บัฟเฟอร์ส่วนล้น (buffer overflow/overrun) เป็นสาเหตุที่สําคัญอย่างหนึ่งของปัญหาด้านความปลอดภัย เนื่องจากเทคโนโลยีการกําจัดการตรวจสอบขอบเขต (bounds-checking elimination) ไม่มีอยู่เลยเมื่อภาษาซีถูกนิยามขึ้น การตรวจสอบขอบเขตจึงลดทอนประสิทธิภาพอย่างรุนแรง โดยเฉพาะกับการคํานวณเชิงจํานวน เมื่อสองสามปีก่อนหน้านั้น ตัวแปลภาษาฟอร์แทรนมีตัวเลือกให้เปิดหรือปิดการตรวจสอบขอบเขตได้ แต่ตัวเลือกเช่นนี้ไม่มีประโยชน์ต่อภาษาซี เพราะอาร์กิวเมนต์ของแถวลําดับถูกผ่านค่าด้วยตัวชี้ธรรมดา ภาษาซีไม่มีข้อกําหนดพิเศษสําหรับการประกาศแถวลําดับหลายมิติ แต่ออกจะขึ้นอยู่กับการเรียกซ้ําภายในระบบชนิดตัวแปร เพื่อประกาศแถวลําดับของแถวลําดับ ซึ่งสามารถบรรลุผลสําเร็จได้เหมือนกัน ค่าดัชนีของ "แถวลําดับหลายมิติ" ที่สร้างขึ้นสามารถพิจารณาว่าเพิ่มขึ้นตามอันดับเรียงตามแถว (row-major order) โดยปกติแถวลําดับหลายมิติถูกใช้งานในขั้นตอนวิธีเชิงจํานวนเพื่อเก็บข้อมูลเมทริกซ์ (ซึ่งประยุกต์มาจากพีชคณิตเชิงเส้นเป็นหลัก) โครงสร้างของแถวลําดับในภาษาซีเหมาะสมเป็นอย่างดีสําหรับงานนี้ แต่เนื่องจากแถวลําดับถูกผ่านค่าด้วยตัวชี้ ขอบเขตของแถวลําดับจึงต้องเป็นค่าที่ทราบและตายตัว หรือไม่เช่นนั้นก็ต้องผ่านค่าไปพร้อมกับซับรูทีนที่จําเป็นต้องทราบ นอกจากนี้ แถวลําดับของแถวลําดับที่จัดสรรขนาดแบบพลวัต ไม่สามารถเข้าถึงได้โดยใช้ดัชนีสองชั้น (ตัวอย่างกรณีนี้เช่นการจัดสรรแถวลําดับด้วย "เวกเตอร์แถว" ของตัวชี้ไปยังสดมภ์) ภาษาซี99 ได้แนะนํา "แถวลําดับความยาวแปรได้" เพิ่มเข้ามา แต่ก็ยังมีปัญหาบางประการที่เหมือนกับปัญหาแถวลําดับของภาษาซี ความใช้แทนกันได้ระหว่างตัวชี้และแถวลําดับ คุณลักษณะเด่นชัดของภาษาซี (ซึ่งอาจทําให้สับสนด้วย) คือการปฏิบัติต่อแถวลําดับและตัวชี้ สัญกรณ์แถวลําดับ x[i] สามารถใช้กับตัวชี้ x ได้ โดยแปลความหมายว่าเป็นการเข้าถึงวัตถุตัวที่ i + 1 ของวัตถุข้อมูลที่อยู่ติดกันถัดจากตําแหน่งที่ x ชี้อยู่ ซึ่งถือว่าเป็นสมาชิกตัวแรกของแถวลําดับ (x[0]) x[i] มีความหมายเทียบเท่า *(x + i) ตามรูปแบบ และเนื่องจากชนิดตัวแปรของตัวชี้เป็นที่ทราบขณะแปล ตําแหน่ง x + i ที่ชี้ไปมิได้หมายความว่าจากตําแหน่ง x แล้วเพิ่มไปอีก i ไบต์ แต่หมายถึงเพิ่มไปอีก (i คูณด้วยขนาดของสมาชิกที่ตําแหน่ง x) ขนาดของสมาชิกนี้ได้มาจากการใช้ตัวดําเนินการ sizeof บนสมาชิกที่อ้างอิงกลับตัวใดตัวหนึ่งของ x ดังเช่น n = sizeof *x หรือ n = sizeof x[0] นอกจากนี้ในบริบทส่วนใหญ่ของนิพจน์ ชื่อของแถวลําดับจะถูกแปลงเป็นตัวชี้ที่ชี้ไปยังสมาชิกตัวแรกของแถวลําดับนั้น สิ่งนี้บอกเป็นนัยว่าแถวลําดับจะไม่ถูกคัดลอกข้อมูลไปทั้งหมดเมื่อนําไปตั้งชื่ออาร์กิวเมนต์ของฟังก์ชัน แต่จะมีเพียงแค่ตําแหน่งของสมาชิกตัวแรกเท่านั้นที่ส่งผ่านไป ดังนั้นถึงแม้ว่าการเรียกใช้ฟังก์ชันในภาษาซีจะตีความว่าส่งโดยให้ค่า (pass-by-value) แต่แถวลําดับนั้นส่งโดยอ้างอิง (pass-by-reference) ในทางปฏิบัติ จํานวนสมาชิกของแถวลําดับ x ที่ได้ประกาศไว้แล้ว สามารถคํานวณได้จาก sizeof x / sizeof x[0] การสาธิตอย่างหนึ่งที่น่าสนใจต่อความใช้แทนกันได้ระหว่างตัวชี้และแถวลําดับแสดงไว้ด้านล่าง การกําหนดค่าทั้งสี่มีความหมายเทียบเท่ากันและเป็นรหัสที่ใช้งานได้ในภาษาซี /* x เป็นแถวลําดับหรือตัวชี้, i เป็นจํานวนเต็ม */ x[i] = 1; /* เทียบเท่ากับ *(x + i) */ *(x + i) = 1; *(i + x) = 1; i[x] = 1; /* เทียบเท่ากับ *(i + x) */ แม้ว่าการกําหนดค่าทั้งสี่เทียบเท่ากัน แต่มีเพียงแบบแรกเท่านั้นที่แสดงรูปแบบการลงรหัสที่ดี กรณีอื่นอาจพบได้ในรหัสภาษาซีที่ยุ่งเหยิง ถึงอย่างไรก็ตามแถวลําดับและตัวชี้ก็ยังมีจุดที่แตกต่างแม้ว่ามันจะเทียบเท่ากัน ตัวชี้ไปยังสมาชิกตัวแรกซึ่งแปลงมาจากแถวลําดับ ไม่มีเนื้อที่เก็บข้อมูลตําแหน่งของมันเอง ต่างจากตัวแปรตัวชี้ซึ่งมี เมื่อเป็นเช่นนั้นแล้วสิ่งที่แถวลําดับ "ชี้ไป" จึงไม่สามารถเปลี่ยนแปลงได้ และไม่สามารถกําหนดค่าใหม่ให้กับตัวแปรแถวลําดับ (ค่าต่าง ๆ ของแถวลําดับอาจคัดลอกได้ โดยใช้ฟังก์ชัน memcpy เป็นต้น) การจัดการหน่วยความจํา ฟังก์ชันการทํางานหนึ่งที่สําคัญที่สุดของภาษาโปรแกรมคือ การให้บริการการจัดการหน่วยความจําและวัตถุที่บันทึกอยู่ในหน่วยความจํา ภาษาซีมีสามแนวทางที่ต่างกันเพื่อจัดสรรหน่วยความจําสําหรับวัตถุ การจัดสรรหน่วยความจําสถิต ที่ว่างสําหรับวัตถุในรหัสฐานสองซึ่งเว้นไว้ขณะแปลโปรแกรม วัตถุเหล่านี้มีอายุขัย (extent) ตราบเท่าที่รหัสฐานสองที่มีวัตถุนั้นบรรจุลงในหน่วยความจํา การจัดสรรหน่วยความจําอัตโนมัติ วัตถุชั่วคราวสามารถเก็บบันทึกในกองซ้อน (stack) และที่ว่างนี้จะถูกเรียกคืนและใช้ใหม่หลังจากวัตถุที่ประกาศเลิกการทํางานโดยอัตโนมัติ การจัดสรรหน่วยความจําพลวัต บล็อกต่าง ๆ ของหน่วยความจําในขนาดที่ต้องการสามารถร้องขอได้ขณะทํางาน โดยใช้ฟังก์ชันไลบรารีอาทิ malloc จองเนื้อที่หน่วยความจําที่เรียกว่าฮีป (heap) บล็อกเหล่านี้คงอยู่จนกว่าจะถูกเรียกคืนเพื่อใช้ใหม่โดยใช้ฟังก์ชัน free ในภายหลัง แนวทางสามอย่างนี้เหมาะสมในสถานการณ์และข้อแลกเปลี่ยนที่ต่างกันไป ตัวอย่างเช่น การจัดสรรหน่วยความจําสถิตไม่มีการดําเนินงานสิ้นเปลือง (overhead) เพื่อการจัดสรร การจัดสรรหน่วยความจําอัตโนมัติอาจมีการสิ้นเปลืองน้อย และการจัดสรรหน่วยความจําพลวัตอาจเป็นไปได้ว่ามีความสิ้นเปลืองอย่างมากทั้งการจัดสรรและการเรียกคืน ในทางตรงข้าม ที่ว่างในกองซ้อนโดยทั่วไปมีขนาดจํากัดและไม่คงทนถาวรไปกว่าหน่วยความจําแบบสถิตหรือที่ว่างในฮีป และการจัดสรรหน่วยความจําพลวัตสามารถจัดสรรวัตถุที่ทราบขนาดเฉพาะขณะทํางานได้ โปรแกรมภาษาซีส่วนใหญ่จึงใช้งานทั้งสามแนวทางอย่างกว้างขวาง การจัดสรรมักให้ความสําคัญแก่แบบอัตโนมัติหรือแบบสถิตมากกว่า เพราะตัวแปลโปรแกรมเป็นส่วนจัดการหน่วยเก็บบันทึก ทําให้โปรแกรมเมอร์ไม่ต้องจัดสรรและเรียกคืนหน่วยเก็บบันทึกจุกจิกด้วยตนเองซึ่งเสี่ยงต่อการเกิดข้อผิดพลาด อย่างไรก็ตามโครงสร้างข้อมูลหลายชนิดสามารถขยายขนาดได้ในขณะทํางาน และเนื่องจากการจัดสรรสถิต (และการจัดสรรอัตโนมัติในภาษาซี89 และซี90) จะต้องมีขนาดตายตัวขณะแปลโปรแกรม หลายสถานการณ์จึงจําเป็นต้องใช้การจัดสรรพลวัต ก่อนที่จะมีมาตรฐานซี99 แถวลําดับความยาวแปรได้เป็นตัวอย่างปัญหาหนึ่งของกรณีนี้ วัตถุที่จัดสรรแบบอัตโนมัติและพลวัตจะถูกกําหนดค่าเริ่มต้นถ้าได้ระบุไว้ หรือมิฉะนั้นมันจะมีค่าที่ไม่แน่นอน (ไม่ว่ารูปแบบรหัสฐานสองบนหน่วยเก็บบันทึกจะเป็นอะไรก็ตาม ซึ่งอาจไม่เป็นค่าที่ใช้งานได้สําหรับชนิดตัวแปรนั้น) ถ้าโปรแกรมพยายามเข้าถึงค่าที่ไม่กําหนดนี้ ผลลัพธ์จะไม่สามารถนิยามได้ ตัวแปลโปรแกรมสมัยใหม่หลายโปรแกรมพยายามตรวจสอบและแจ้งเตือนเกี่ยวกับปัญหานี้ แต่ก็จะเกิดทั้งผลบวกลวงและผลลบลวง ปัญหาอีกประการหนึ่งคือ การจัดสรรหน่วยความจําในฮีปจําเป็นต้องกระทําพร้อมกับการใช้งานจริงด้วยตนเองในโปรแกรมใด ๆ ก็ตาม เพื่อให้มันสามารถนํากลับมาใช้ใหม่มากที่สุดเท่าที่เป็นไปได้ ตัวอย่างเช่น ถ้ามีตัวชี้ไปยังฮีปที่ถูกจัดสรรนอกขอบเขต หรือค่าของตัวชี้ถูกเขียนทับก่อนเรียกใช้ free จะทําให้หน่วยความจําที่ตําแหน่งนั้นไม่สามารถเรียกคืนเพื่อใช้ใหม่ภายหลังและสูญเสียไปกับโปรแกรม อันเป็นปรากฏการณ์ที่เรียกว่า หน่วยความจํารั่ว (memory leak) ในทางกลับกัน การปลดปล่อยหน่วยความจําเร็วเกินไปแล้วยังคงใช้งานอยู่ซึ่งเป็นไปได้ แต่เนื่องจากระบบจัดสรรหน่วยความจําสามารถจัดสรรอีกครั้งหรือใช้หน่วยความจําที่ถูกทําให้ว่าง พฤติกรรมที่คาดเดาไม่ได้ก็อาจเกิดขึ้น โดยปกติอาการจะปรากฏในส่วนของโปรแกรมที่อยู่ไกลจากจุดที่ทําให้เกิดความผิดพลาดจริง ทําให้ตรวจแก้ปัญหาได้อย่างยากลําบาก ปัญหาเช่นนี้ได้รับการปรับปรุงแก้ไขในภาษาโปรแกรมที่มีการเก็บกวาดข้อมูลขยะอัตโนมัติ ไลบรารี ภาษาซีใช้ไลบรารีเป็นวิธีการหลักสําหรับส่วนขยาย ไลบรารีคือกลุ่มของฟังก์ชันที่บรรจุอยู่ในไฟล์เดียวกันโดย "ถาวร" ไลบรารีแต่ละชนิดจะมีไฟล์ส่วนหัว ซึ่งรวบรวมต้นแบบ (prototype) ตามฟังก์ชันที่มีอยู่ในไลบรารีซึ่งอาจถูกเรียกใช้โดยโปรแกรม และมีการประกาศชนิดข้อมูลพิเศษและสัญลักษณ์แมโครที่ใช้ในฟังก์ชันเหล่านั้น โปรแกรมจะต้องรวมไฟล์ส่วนหัวนี้เข้าไปเพื่อใช้งานไลบรารี และไลบรารีจะต้องเชื่อมโยงกับโปรแกรม ซึ่งในหลายกรณีอาจต้องใช้ตัวบ่งชี้คอมไพเลอร์ (compiler flag) (เช่น -lm สําหรับไลบรารีคณิตศาสตร์เป็นต้น) ไลบรารีสามัญที่สุดคือไลบรารีมาตรฐานของภาษาซี ซึ่งระบุไว้โดยมาตรฐานไอโซและแอนซีซีและติดมากับทุกโปรแกรมที่พัฒนาด้วยภาษาซี (ส่วนการพัฒนาบนสภาพแวดล้อมแบบฝังตัวอาจมีไลบรารีมาตรฐานเพียงส่วนย่อยส่วนหนึ่ง) ไลบรารีนี้รองรับกระแสข้อมูลรับเข้าและส่งออก การจัดสรรหน่วยความจํา คณิตศาสตร์ สายอักขระ และค่าของเวลา ไลบรารีสามัญอีกกลุ่มหนึ่งเป็นฟังก์ชันที่เจาะจงใช้กับโปรแกรมที่ทํางานบนระบบปฏิบัติการยูนิกซ์หรือคล้ายยูนิกซ์ โดยเฉพาะฟังก์ชันที่มีส่วนต่อประสานเข้ากับเคอร์เนล ฟังก์ชันเหล่านี้ได้ให้รายละเอียดไว้ในมาตรฐานหลากหลายเช่นโพสซิกซ์หรือข้อกําหนดคุณลักษณะยูนิกซ์เชิงเดี่ยว (Single UNIX Specification) เนื่องด้วยโปรแกรมหลายโปรแกรมถูกเขียนขึ้นด้วยภาษาซี ไลบรารีอื่น ๆ ที่หลากหลายในวงกว้างก็มีเช่นกัน บ่อยครั้งที่ไลบรารีเหล่านั้นเขียนด้วยภาษาซี เพราะตัวแปลภาษาซีจะจัดสร้างรหัสวัตถุ (object code) ที่มีประสิทธิภาพ จากนั้นโปรแกรมเมอร์จะสร้างส่วนต่อประสานไปยังไลบรารี จึงทําให้ภาษาระดับที่สูงกว่าอย่างภาษาจาวา ภาษาเพิร์ล และภาษาไพทอน สามารถใช้งานรูทีนในรหัสวัตถุได้ เครื่องมือที่ใช้กับภาษา เครื่องมือหลายอย่างถูกสร้างขึ้นเพื่อช่วยเหลือโปรแกรมเมอร์ภาษาซี เพื่อหลีกเลี่ยงปัญหาบางประเภทที่มากับภาษา เช่นข้อความสั่งที่มีพฤติกรรมไม่นิยาม หรือข้อความสั่งที่ปฏิบัติไม่ดีซึ่งอาจส่งผลให้เกิดพฤติกรรมที่ไม่ตั้งใจหรือความผิดพลาดขณะทํางาน การตรวจสอบแก้ไขรหัสต้นฉบับอัตโนมัติเป็นประโยชน์สําหรับทุกภาษา และภาษาซีก็มีเครื่องมือนั้นเช่นกันเช่น lint การใช้ lint โดยปกติเพื่อตรวจจับรหัสที่น่าสงสัยเมื่อโปรแกรมเขียนขึ้นเป็นครั้งแรก เมื่อโปรแกรมผ่านการตรวจสอบจาก lint แล้ว มันจึงจะถูกแปลด้วยตัวแปลภาษาซี ตัวแปลภาษาหลายตัวก็สามารถเลือกได้เพื่อแจ้งเตือน เกี่ยวกับโครงสร้างที่ถูกต้องตามวากยสัมพันธ์แต่อาจเกิดความผิดพลาดได้จริง มิสราซี เป็นกลุ่มแนวทางที่มีกรรมสิทธิ์เพื่อการหลีกเลี่ยงรหัสที่น่าสงสัยเช่นนั้น ซึ่งพัฒนาขึ้นสําหรับระบบฝังตัว นอกจากนี้ยังมีตัวแปลโปรแกรม ไลบรารี และกลไกระดับระบบปฏิบัติการ เพื่อการตรวจสอบขอบเขตของแถวลําดับ การตรวจจับบัฟเฟอร์ส่วนล้น การทําให้เป็นอนุกรม (serialization) และการเก็บกวาดข้อมูลขยะอัตโนมัติ ซึ่งมิใช่ส่วนหนึ่งที่เป็นมาตรฐานของภาษาซี เครื่องมืออื่นอย่างเช่น เพียวริฟาย แวลกรินด์ และการเชื่อมโยงกับไลบรารีที่มีฟังก์ชันจัดสรรหน่วยความจําแบบพิเศษ สามารถช่วยเปิดเผยข้อผิดพลาดในหน่วยความจําขณะทํางานได้ ภาษาที่เกี่ยวข้อง ภาษาซีมีอิทธิพลต่อภาษาอื่นในยุคหลังทั้งในทางตรงและทางอ้อมเช่น ภาษาจาวา ภาษาเพิร์ล ภาษาพีเอชพี จาวาสคริปต์ ภาษาแอลพีซี ภาษาซีชาร์ป และซีเชลล์ของยูนิกซ์ อิทธิพลที่แพร่หลายมากที่สุดคือรูปแบบวากยสัมพันธ์ ทุกภาษาที่กล่าวมาได้รวมวากยสัมพันธ์ของข้อความสั่งกับนิพจน์ของภาษาซี พร้อมทั้งระบบชนิดตัวแปร อันเป็นตัวแบบข้อมูลและ/หรือโครงสร้างโปรแกรมขนาดใหญ่ที่ต่างไปจากของภาษาซี ซึ่งบางครั้งก็ต่างกันอย่างมาก เมื่อแนวคิดภาษาเชิงวัตถุเป็นที่นิยม ภาษาซีพลัสพลัสและภาษาอ็อบเจกทีฟ-ซีเป็นส่วนขยายที่แตกต่างกันของภาษาซีที่ให้ความสามารถเชิงวัตถุได้ ภาษาทั้งสองแต่เดิมทําให้เกิดผลโดยใช้ตัวแปลภาษาแบบแปลงรหัสต่อรหัส นั่นคือรหัสต้นฉบับของภาษาดังกล่าวจะถูกแปลเป็นรหัสภาษาซีก่อน จากนั้นจึงแปลด้วยคอมไพเลอร์อีกต่อหนึ่ง ภาษาซีพลัสพลัสประดิษฐ์ขึ้นโดยเบียเนอ สเดราสดร็อบ (Bjarne Stroustrup) ให้เป็นภาษาที่มีการทํางานเชิงวัตถุโดยมีวากยสัมพันธ์คล้ายภาษาซี ภาษาซีพลัสพลัสเพิ่มเติมความรัดกุมต่อชนิดตัวแปร ขอบข่าย และเครื่องมืออื่น ๆ ที่เป็นประโยชน์ในการเขียนโปรแกรมเชิงวัตถุ และอนุญาตให้เขียนโปรแกรมเชิงทั่วไปผ่านแม่แบบ ภาษาซีพลัสพลัสรองรับรหัสส่วนใหญ่ของภาษาซีจนแทบจะครอบคลุมทั้งหมด แต่ก็มีข้อยกเว้นบางประการ (ดูเพิ่มที่ ความเข้ากันได้ระหว่างภาษาซีและภาษาซีพลัสพลัส สําหรับรายการความแตกต่างโดยละเอียด) ภาษาอ็อบเจกทีฟ-ซีเดิมเป็นเพียง "ชั้นบาง ๆ" บนภาษาซีและยังคงครอบคลุมภาษาซีอย่างเข้มงวด ซึ่งอนุญาตให้เขียนโปรแกรมเชิงวัตถุโดยใช้กระบวนทัศน์ชนิดตัวแปรผสมพลวัต/สถิต วากยสัมพันธ์ของภาษาอ็อบเจกทีฟ-ซีมาจากทั้งภาษาซีและภาษาสมอลล์ทอล์ก นั่นคือ วากยสัมพันธ์ที่เกี่ยวข้องกับการประมวลผลก่อน นิพจน์ การประกาศฟังก์ชัน และการเรียกใช้ฟังก์ชันรับมาจากภาษาซี ในขณะที่วากยสัมพันธ์สําหรับคุณลักษณะเชิงวัตถุนํามาจากภาษาสมอลล์ทอล์ก ภาษาดีทําคุณลักษณะหลายอย่างให้ต่างออกไปแต่ยังคงไว้ซึ่งวากยสัมพันธ์ทั่วไปของภาษาซี ไม่เหมือนภาษาซีพลัสพลัสที่แทบจะเข้ากันได้แบบย้อนหลังกับภาษาซี ภาษาดีละทิ้งคุณลักษณะจํานวนหนึ่งของภาษาซีออกไป เนื่องจากวอลเตอร์ ไบรต์ (Walter Bright) ผู้ออกแบบภาษาดี พิจารณาว่าไม่มีความจําเป็นต้องใช้คุณลักษณะเหล่านั้น รวมทั้งตัวประมวลผลก่อนและไตรอักษร ส่วนขยายบางอย่างของภาษาดีไปยังภาษาซี ทับซ้อนกับส่วนขยายไปยังภาษาซีพลัสพลัส ภาษาลิมโบเป็นภาษาหนึ่งที่พัฒนาโดยทีมงานที่เบลล์แล็บส์ และในขณะที่ยังคงรักษาวากยสัมพันธ์และลักษณะทั่วไปบางอย่างของภาษาซี ก็ยังมีการเก็บกวาดข้อมูลขยะและภาวะพร้อมกันที่มีพื้นฐานบนกระบวนการสื่อสารแบบลําดับ (communicating sequential processes) ภาษาไพทอนสืบทอดมาจากภาษาซีในแนวทางที่ต่างออกไป ในขณะที่วากยสัมพันธ์และความหมายของภาษาไพทอนแตกต่างกับภาษาซีอย่างสิ้นเชิง แต่เครื่องมือทําให้เกิดผลในภาษาไพทอนที่ใช้กันอย่างกว้างขวางที่สุดคือซีไพทอน ซึ่งเป็นโปรแกรมภาษาซีแบบโอเพนซอร์ซ สิ่งนี้ช่วยให้ผู้ใช้สามารถเขียนภาษาซีเป็นส่วนขยายของภาษาไพทอน หรือฝังภาษาไพทอนลงในโปรแกรมภาษาซี ความสัมพันธ์อย่างใกล้ชิดนี้เป็นปัจจัยหนึ่งที่นําไปสู่ความสําเร็จของภาษาไพทอนในฐานะภาษาพลวัตเพื่อการใช้งานทั่วไป ภาษาเพิร์ลเป็นอีกตัวอย่างหนึ่งของภาษาโปรแกรมที่มีต้นกําเนิดจากภาษาซี โครงสร้างโดยรวมทั้งหมดของภาษาเพิร์ลมาจากภาษาซีอย่างมาก เครื่องมือทําให้เกิดผลของภาษาเพิร์ลมาตรฐานเขียนขึ้นด้วยภาษาซี และรองรับส่วนขยายที่เขียนในภาษาซีด้วย อ้างอิง ดูเพิ่ม ตัวประมวลผลก่อนของภาษาซี ไลบรารีมาตรฐานของภาษาซี วากยสัมพันธ์ในภาษาซี การเปรียบเทียบระหว่างภาษาปาสกาลและภาษาซี การเปรียบเทียบระหว่างภาษาโปรแกรม การประกวดรหัสภาษาซียุ่งเหยิงนานาชาติ รายชื่อตัวแปลโปรแกรม รายชื่อภาษาโปรแกรมที่มีพื้นฐานจากภาษาซี หนังสืออ่านเพิ่มเติม แหล่งข้อมูลอื่น ISO C Working Group official website comp.lang.c Frequently Asked Questions ISO/IEC 9899. Official C99 documents. ANSI C Standard (ANSI X3J11/88-090) (Published May 13, 1988), Third Public Review ANSI C Rationale (ANSI X3J11/88-151) (Published Nov 18, 1988) ภาษาโปรแกรมเชิงกระบวนงาน สิ่งประดิษฐ์ของสหรัฐ ซอฟต์แวร์ข้ามแพลตฟอร์ม ภาษาโปรแกรมระบบ


source: CulturaX

text: สํานักงานปศุสัตว์จังหวัดขอนแก่น ชี้แจงเหตุการณ์ที่มีผลกระทบต่อกรมปศุสัตว์ กรณี ชุดปฏิบัติการพิเศษพญาไท สั่งอายัดม้า 44 ตัว เคลื่อนย้าย-ค้าสัตว์ผิดกฎหมาย ชี้แจเหตุการณ์ที่มีผลกระทบต่อกรมปศุสัตว์ ประเด็น เมื่อวันที่ 14 มกราคม 2564 ชุดปฏิบัติการพิเศษพญาไท กรมปศุสัตว์ สั่งอายัดม้า 44 ตัว ณ สถานที่พักสัตว์ของโรงฆ่าสัตว์ยาซีนเนื้อสดของนางสาวกัญญารัตน์ สีจันทร์แจ้ง ตั้งอยู่เลขที่ 313 หมู่ 2 ตําบลโนนทอง อําเภอแวงใหญ่ จังหวัดขอนแก่น รายละเอียด ปศุสัตว์จังหวัดขอนแก่น ประชุมปรึกษาหารือแนวทางแก้ไขปัญหาสุนัข-แมวจรจัด Priyanuch Seephai วันที่ 21 มีนาคม 2562 เวลา 14.00 น. นายฉัตรชัย อุ่นเจริญ นายอําเภอเมืองขอนแก่น รักษาราชการแทนปลัดจังหวัดขอนแก่น เป็นประธานประชุมคณะทํางานและหน่วยงานที่เกี่ยวข้อง เพื่อปรึกษาหารือและหาแนวทางในการแก้ไขปัญหาสุนัข-แมวจรจัด จังหวัดขอนแก่น ครั้งที่ 2/2562 ณ ห้องประชุมสํานักงานปศุสัตว์จังหวัดขอนแก่น น.สพ.สมชวน รัตนมังคลานนท์ รองอธิบดีกรมปศุสัตว์ ตรวจเยี่ยมประร่วมประชุมหารือกับข้าราชการสํานักงานปศุสัตว์จังหวัดขอนแก่นแก่น วันที่ 20 มิถุนายน 2562 เวลา 13.30 น. น.สพ.สมชวน รัตนมคลานนท์ รองอธิบดีกรมปศุสัตว์ พร้อมคณะผู้ติดตาม กรมปศุสัตว์ เข้าตรวจเยี่ยมและติดตามความก้าวหน้าการดําเนินงานโครงการตามนโยบายกรมปศุสัตว์ และประชุมหารือภารกิจด้านสวัสดิภาพสัตว์และสัตวแพทย์บริการ ณ ห้องประชุมสํานักงานปศุสัตว์จังหวัดขอนแก่น อ่านละเอียดเพิ่มเติม ปศุสัตว์จังหวัดขอนแก่น รณรงค์ฉีดวัคซีนป้องกันโรคพิษสุนัขบ้า วันที่ 14-19 มีนาคม 2562 เวลา 09.00 น. นายสัตวแพทย์ชาญประเสริฐ พลซา ปศุสัตว์จังหวัดขอนแก่น มอบหมายให้สํานักงานปศุสัตว์อําเภอทุกอําเภอในเขตพื้นที่จังหวัดขอนแก่น ดําเนินการรณรงค์ฉีดวัคซีนป้องกันโรคพิษสุนัขบ้า ตามโครงการสัตว์ปลอดโรค คนปลอดภัย จากโรคพิษสุนัขบ้า ประจําปี. 2562 โดยมีประชาชนนําสุนัข-แมวเข้ารับบริการฉีดวัคซีนป้องกันโรคพิษสุนัขบ้า รวมสุนัขที่รับการฉีดวัคซีน 1,021 ตัว แมว 223 ตัววันที่ 14-19 มีนาคม 2562 เวลา 09.00 น. นายสัตวแพทย์ชาญประเสริฐ พลซา ปศุสัตว์จังหวัดขอนแก่น มอบหมายให้สํานักงานปศุสัตว์อําเภอทุกอําเภอในเขตพื้นที่จังหวัดขอนแก่น ดําเนินการรณรงค์ฉีดวัคซีนป้องกันโรคพิษสุนัขบ้า ตามโครงการสัตว์ปลอดโรค คนปลอดภัย จากโรคพิษสุนัขบ้า ประจําปี. 2562 โดยมีประชาชนนําสุนัข-แมวเข้ารับบริการฉีดวัคซีนป้องกันโรคพิษสุนัขบ้า รวมสุนัขที่รับการฉีดวัคซีน 1,021 ตัว แมว 223 ตัว รายละเอียด สํานักงานปศุสัตว์จังหวัดขอนแก่นเฝ้าระวังป้องกันโรคสัตว์ปีก ปศุสัตว์อําเภอมัญจาคีรี ออกบริการหน่วยแพทย์เคลื่อนที่ พอ.สว.สร้างร้อยยิ้มให้กับประชาชน ปศุสัตว์จังหวัดขอนแก่น พร้อมคณะทํางานเข้าปฏิบัติเคลื่อนย้ายและแก้ไขปัญหาสุนัข-แมวจรจัด จากสถานสงเคราะห์สัตว์(บ้านป้าเดือน) จังหวัดขอนแก่นจัดประชุมคณะกรรมการควบคุมและกําจัดโรคพิษสุนัขบ้าจังหวัดขอนแก่น สงวนลิขสิทธิ์ พ.ศ. 2560 ตามพระราชบัญญัติลิขสิทธิ์ 2537 สํานักงานปศุสัตว์จังหวัดขอนแก่น 72 ถ.กลางเมือง ต.ในเมือง อ.เมืองขอนแก่น จ.ขอนแก่น 40000 โทรศัพท์ 0 4322 1844 โทรสาร 0 4322 2154 อีเมล์ pvlo_kkn@dld.go.th


เจ้าหน้าที่ต้อนรับ ประชาสัมพันธ์ | www.iget.in.th เจ้าหน้าที่ต้อนรับ ประชาสัมพันธ์ ลงประกาศเมื่อ 18 ต.ค. 2559 อัพเดทล่าสุด 18 ต.ค. 2559 15:19:02 น. เข้าชม 214 ครั้ง ผู้ลงประกาศ : นางาสาว แพรพลอย ตะลีงอกะลี อัพเดทล่าสุด : 18 ต.ค. 2559 15:19:02 น. ที่อยู่ : ถนนราฎร์อุทิศ 21 ซอย 8 อ.หาดใหญ่ เบอร์โทรศัพท์ : 063-9547533 Email : r_faisu@hotmail.com


บุหรี่ พรบ.ควบคุมยาสูบ ประเภทของสื่อ สื่อป้ายแอลอีดี พรบ.บุหรี่ สื่อรณรงค์ทางวิทยุ รู้ๆกันอยู่ อาร์ตเวิร์ค 4888 4887 4886 4882 4879 4877 4875 4873 4871 4869 4867 4863 ดูทั้งหมด >>> 2558 เข้าสู่ระบบ


ความเห็นของนักเดินทางต่อตูว ริเวอร์


ชุดเดรส Balmain สําหรับผู้หญิง ราคาถูก รุ่นใหม่ล่าสุด ในประเทศไทย November 2019 - Priceprice.com ชุดเดรส Balmain สําหรับผู้ ( 301 รายการ 1 แบรนด์ 2 ร้านค้า) ชุดเดรส Balmain สําหรับผู้หญิง ในประเทศไทย November 2019 [Balmain] Balmain pleated knit dress - Blue [Balmain] Balmain striped sweater dress - White 53,089 บาท [Balmain] Balmain fitted knit dress - Green [Balmain] Balmain sequin embroidered bodycon dress - White 135,393 บาท [Balmain] Balmain horizontal stripes knitted dress - White 39,195 บาท [Balmain] Balmain checked knit mini dress - White 45,020 บาท [Balmain] Balmain mixed print halterneck dress - Multicolor 46,173 บาท [Balmain] Balmain contrasting embroidered stripes dress - Black [Balmain] Balmain pied de poule dress with buttons - Black 75,569 บาท [Balmain] Balmain grid print bodycon dress - Black 31,368 บาท [Balmain] Balmain sequinned gown - Black 101,416 บาท [Balmain] Balmain draped laminated dress - Gold 67,499 บาท [Balmain] Balmain tweed fitted dress - Pink 50,541 บาท [Balmain] Balmain sequin wrap maxi dress - Black [Balmain] Balmain crystal embellished dress - Silver 79,786 บาท [Balmain] Balmain wrap-around knit dress - Blue 63,010 บาท [Balmain] Balmain button-down maxi dress - Blue [Balmain] Balmain dogtooth wrap dress - Black 91,496 บาท 50,996 บาท [Balmain] Balmain draped mini dress - Grey 77,571 บาท [Balmain] Balmain graphic T-shirt dress - Red 24,027 บาท [Balmain] Balmain metallic woven dress - White 48,175 บาท [Balmain] Balmain gathered dress - Black 67,894 บาท [Balmain] Balmain embellished crepe mini dress - Black 90,737 บาท [Balmain] Balmain buttoned sequin dress - Black 180,443 บาท [Balmain] Balmain medical stripe bodycon dress - White 44,777 บาท [Balmain] Balmain Embroidered knit dress - Black 50,359 บาท [Balmain] Balmain hooded blazer dress - Black 101,082 บาท [Balmain] Balmain lurex fitted mini dress - Black 107,180 บาท [Balmain] Balmain ribbed knit fitted dress - White [Balmain] Balmain metallic fringed short dress - Black [Balmain] Balmain rhinestone embellished dress - Black [Balmain] Balmain asymmetric-button tweed blazer dress - Pink 90,009 บาท [Balmain] Balmain metallic asymmetric Grecian dress - Grey 136,334 บาท [Balmain] Balmain double-breasted blazer dress - Pink 110,790 บาท [Balmain] Balmain knitted mini dress - White 45,141 บาท [Balmain] Balmain button embellished knit mini dress - Pink 50,905 บาท [Balmain] Balmain buttoned tweed mini dress - Blue 111,700 บาท [Balmain] Balmain double-breasted fringed dress - Black 95,106 บาท [Balmain] Balmain Sunset sequin dress - Black 84,731 บาท [Balmain] Balmain striped knit mini dress - White [Balmain] Balmain double-breasted blazer dress - Black [Balmain] Balmain buttoned mini dress - Black [Balmain] Balmain double-breasted sleeveless blazer dress - Red 85,519 บาท [Balmain] Balmain Fitted v-neck mini dress - Blue 72,899 บาท [Balmain] Balmain knitted mini dress - Blue [Balmain] Balmain midi knit dress - Black 54,273 บาท [Balmain] Balmain exaggerated shoulder mini dress - White [Balmain] Balmain asymmetric button mini dress - White 80,969 บาท [Balmain] Balmain high neck velvet dress - Black 85,489 บาท [Balmain] Balmain fitted mini dress - Black [Balmain] Balmain button-embellished mini dress - Black 107,574 บาท [Balmain] Balmain velvet fitted mini dress - Black [Balmain] Balmain sequin embellished mini dress - Black 273,122 บาท [Balmain] Balmain fitted diamond pattern dress - White 112,610 บาท [Balmain] Balmain double-breasted wrap dress - Red 113,551 บาท [Balmain] Balmain bouclé tweed mini dress - White 60,643 บาท [Balmain] Balmain square shoulder sheer insert dress - Black 74,386 บาท [Balmain] Balmain padded-shoulder sequin mini-dress - Black 147,073 บาท [Balmain] Balmain wrap style button-up denim dress - Black [Balmain] Balmain button front knitted dress - Black [Balmain] Balmain double breasted blazer dress - Blue [Balmain] Balmain off the shoulder mini dress - Black 72,020 บาท [Balmain] Balmain real embellished mini dress - Black 90,100 บาท [Balmain] Balmain tailored blazer dress - Black 92,285 บาท [Balmain] Balmain embroidered mini dress - Black [Balmain] Balmain knitted midi dress - Black 67,378 บาท [Balmain] Balmain off shoulder denim dress - Blue 89,979 บาท [Balmain] Balmain embellished fitted short dress - Black [Balmain] Balmain off-the-shoulder buttoned denim dress - Blue [Balmain] Balmain knitted midi dress - Blue 61,917 บาท [Balmain] Balmain check knitted mini dress - White [Balmain] Balmain long-sleeve velvety dress - Black [Balmain] Balmain cold-shoulder boucle knit dress - Black [Balmain] Balmain double-breasted wrap dress - Black 114,491 บาท [Balmain] Balmain fitted dress - Black 50,116 บาท [Balmain] Balmain tweed mini dress - White 114,946 บาท [Balmain] Balmain V-neck velvet mini dress - Blue [Balmain] Balmain velour buttoned dress - Blue [Balmain] Balmain stripe bandage bodycon dress - Black [Balmain] Balmain cut-out shoulder fitted dress - Green [Balmain] Balmain high-neck dragon print dress - Blue 87,127 บาท [Balmain] Balmain beaded dragon asymmetrical dress - Black 135,211 บาท [Balmain] Balmain long sequinned dress - Black 133,027 บาท [Balmain] Balmain buttoned body-con mini dress - Black [Balmain] Balmain double-breasted waistcoat dress - White 88,553 บาท [Balmain] Balmain studded bodycon dress - White 161,847 บาท [Balmain] Balmain sheer cut-out bodycon dress - Purple [Balmain] Balmain off-the-shoulder tie-waist mini dress - Black 41,197 บาท [Balmain] Balmain off-the-shoulder dress - Black 70,927 บาท [Balmain] Balmain button-embellished fitted dress - Blue [Balmain] Balmain buttoned tweed dress - Pink 124,715 บาท [Balmain] Balmain ribbed panel dress - Black [Balmain] Balmain feather-trim dress - White 157,842 บาท [Balmain] Balmain embossed button dress - White 53,818 บาท [Balmain] Balmain knitted embossed button dress - Black 58,338 บาท [Balmain] Balmain tweed denim dress - Blue 70,836 บาท [Balmain] Balmain tweed short-sleeved dress - Black 103,904 บาท [Balmain] Balmain embellished Houndstooth knit dress - Black [Balmain] Balmain side slit sheer sleeve dress - Black 82,304 บาท [Balmain] Balmain polka-dot sleeve dress - Black [Balmain] Balmain metallic short dress - Black [Balmain] Balmain high neck strappy dress - White 119,982 บาท 121,651 บาท 68,501 บาท 49,479 บาท 115,462 บาท 106,179 บาท 76,449 บาท 316,352 บาท 113,581 บาท [Balmain] Balmain v-neck fitted dress - Black


เกาะหมาก Sea Food เกาะหมากซีฟู้ด อยู่บริเวณอ่าวนิด ขับมอร์เตอร์ไซจากชินนามอนไปประมาณ 10 นาที เราก็ถึงเกาะหมากซีฟู้ดแล้วค่ะ ที่ร้านเป็นระเบียงยื่นเข้าไปในทะเล มองเห็นวิวทะเล และสะพานอ่าวนิดชัดเจน ตกแต่งด้วยไม้ ลมเย็นสบาย อาหารหลากหลายเมนู กุ้ง หอย ปู ปลา ปูนิ่มก็มีนะคะ นอกจากเมนูซีฟู๊ตที่หลากหลายแล้ว ยังมีเมนูของหวานอีกเยอะแยะเลยค่ะ เช่น ข้าวเหนียวมะม่วง ไอศรีมกะทิสด กล้วยหอมชุดเกร็ดขนมปังทอด ลูกตาลลอยแก้ว สละลอยแก้ว และอีกมากมาย รอให้เพื่อนๆ แวะเข้ามาชิมกัน ที่เกาะหมากซีฟู้ดค่ะ ^^ ท่านใดขับมอเตอร์ไซไม่เป็นแต่อยากไปทานที่เกาะหมากซีฟู้ดก็ไม่ใช่ปัญหานะคะ ทางร้านมีบริการ Taxi รับ – ส่ง ฟรีค่ะ ^^ เรียบเรียงโดย kohmakcinnamonresort.com ภาพ kohmakguru.com


text: เจริญภักดีขนส่ง รถรับจ้างอ่างทอง ย้ายบ้านด้วย รถกระบะรับจ้างอ่างทอง บริการถึงที่ ถึงใจ | www.postsale.org ลงประกาศเมื่อ 11 Jul 2020 อัพเดทล่าสุด 11 Jul 2020 17:54:06 น. เข้าชม 184 ครั้ง


source: wikipedia

text: พรมกํามะหยี่ ((Hook.) Hanst) เป็นพืชท้องถิ่นในโคลอมเบีย เวเนซุเอลา และบราซิล ใบย่น สีน้ําตาลแดง เส้นใบสีเทาเงิน ดอกสีแดง รูปกรวย แบ่งย่อยได้หลายสายพันธุ์ นิยมปลูกเป็นไม้คลุมดินหรือปลูกในกระถางแขวน อ้างอิง ITIS 34085 ไม้ดอกไม้ประดับ วงศ์ว่านไก่แดง


text: มัตสึโอะ บาโช (ญี่ปุ่น: 松尾芭蕉 Matsuo Bashō, ค.ศ. 1644 – 28 พฤศจิกายน ค.ศ. 1694) หรือ บาโช เป็นนามแฝงของ มัตสึโอะ มูเนฟูซะ (松尾宗房, Matsuo Munefusa) เป็นกวีชาวญี่ปุ่น ผู้ซึ่งได้รับสมญานามเป็นปรมาจารย์ทางด้านบทกวีไฮกุ ในงานกวีที่เขาได้แต่งขึ้นเขียนเพียงชื่อ 芭蕉 (はせを, ฮาเซโอะ) เขาเป็นหนึ่งในกวีที่อยู่ในช่วงยุคสมัยเอโดะ บาโช เกิดในอิงะ ซึ่งปัจจุบันเป็นส่วนหนึ่งของจังหวัดมิเอะ ในตระกูลซามูไร ภายหลังจากการใช้ชีวิตหลายปีภายใต้วิถีชีวิตซามูไร เข้าได้ค้นพบว่าการเป็นนักประพันธ์นั้นเหมาะกับเขามากกว่า เขาจึงได้ละทิ้งวิถีชีวิตซามูไร บาโชได้เริ่มใช้ชีวิตแบบกวีเมื่อได้รับใช้เจ้านายในฐานะซามูไร ในตอนแรกเขาได้ตั้งชื่อตนเองว่า โทเซ (桃青, Tosei) ตามบทกวีโทเซ ซึ่งหมายถึงผลพีชเล็ก ๆ ด้วยบาโชมีความยกย่องนับถือในตัวกวีจีนชื่อหลี่ ไป๋ (李白, Lǐ Bái) ซึ่งหมายถึงลูกพลัมสีขาว ในปี ค.ศ. 1666 เมื่อเจ้านายเก่าได้สิ้นชีวิตลง และมีเจ้านายใหม่ซึ่งเป็นพี่น้องของเจ้านายเดิมขึ้นมาปกครอง เขาได้เลือกกลับไปบ้าน แทนที่จะรับตําแหน่งต่อในฐานะซามูไร และย้ายไปเอโดะในปี ค.ศ. 1675 (ปัจจุบันคือโตเกียว) ต่อมาในปี ค.ศ. 1678 ที่เอโดะ เขาได้รับตําแหน่งให้เป็นปรมาจารย์ไฮกุ หรือ โซโช (宗匠, sōshō) และเริ่มชีวิตของกวีอาชีพ ในปี ค.ศ. 1680 ได้ย้ายไปยังฟูกูงาวะ (ส่วนหนึ่งของเอโดะ) และได้เริ่มปลูกต้นบาโช (芭蕉, Bashō, แปลว่า: ต้นกล้วย) ที่เขาชื่นชอบในบริเวณสวน ภายหลังจากเขาที่ได้ใช้ชื่อตัวเองว่าบาโช ในช่วงชีวิต บาโชได้ออกเดินทางท่องเที่ยวไปหลายแห่ง สถานที่ที่มีชื่อเสียงในประวัติศาสตร์ของญี่ปุ่น และสถานที่ที่ปรากฏในงานประพันธ์ การท่องเที่ยวเหล่านี้มีส่วนสําคัญในงานเขียนของเขา สถานที่บางแห่งได้ส่งเสริมให้มีจินตนาการที่ยิ่งใหญ่ ในการเดินทางบะโชได้พบสานุศิษย์ และสอนพวกเขาด้วยเร็งงะ (連歌, renga) บทประพันธ์ที่มีชื่อเสียงที่สุดของชาโชคือ โอกุ โนะ โฮโซมิจิ (奥おくの細道ほそみち, Oku no Hosomichi, แปลว่า: เส้นทางสายเล็ก ๆ ลึกเข้าไป) เขียนขึ้นภายหลังจากการเดินทางของบาโชและลูกศิษย์ ซึ่งเริ่มจากเอโดะในวันที่ 24 มีนาคม ค.ศ. 1689 และพวกเขาเดินทางไปโทโฮกุและโฮกูริกุ จากนั้นจึงกลับสู่เอโดะในปี ค.ศ. 1691 การเดินทางในหนังสือนี้จบลงที่โองากิและมิโนะ (ปัจจุบันคือจังหวัดกิฟุ) ด้วยบทหนึ่งในไฮกุที่เขาแสดงความหมายโดยนัยว่า จะเดินทางไปศาลเจ้าอิเซะต่อ ภายหลังจากการพักอยู่ที่โองากิ บาโชเสียชีวิตเพราะโรคภัยไข้เจ็บในช่วงต้นฤดูใบไม้ผลิในปี ค.ศ. 1694 ที่โอซากะ ภายในบ้านของลูกศิษย์ที่เขาร่วมเดินทางไปด้วย ก่อนสิ้นใจ บาโชได้เขียนไฮกุสุดท้าย ในการเดินทางฉันล้มป่วย ความฝันวิ่งอยู่รอบกาย ในทุ่งที่ปกคลุมด้วยหญ้าแห้ง 旅に病んで夢は枯野をかけ廻る Tabini yande Yume ha kareno wo Kake meguru บทกวีที่มีชื่อเสียงของบะโช "สระเก่าเอ๋ย" สระเก่าเอ๋ย กบกระโดดลงไป เสียงของน้ํา 古池や蛙飛びこむ水の音 Furuike ya Kawazu tobikomu Mizu no oto เกร็ด เกี่ยวกับ บาโช (Bashō, 芭蕉) หรือ ต้นกล้วย เนื่องจากสภาพอากาศนั้นหนาวเย็นเกินกว่าที่กล้วยจะมีผลได้ ว่ากันว่า เขาตั้งใจว่าจะสื่อความหมายของบทกวีที่มิอาจมีผล หรือไร้ผล และเนื่องจากบาโชได้ศึกษาเซน เช่นนี้ เป็นไปตามแนวคิดของเซน บทความและลิงก์ที่เกี่ยวข้อง ไฮกุ มัตสึโอะ บาโช เร็งงะ มัตสึโอะ บาโช มัตสึโอะ บาโช ไฮกุ เส้นทางสายเล็ก ๆ ไปสู่ทางเหนือ Oku no Hosomichi ในภาษาญี่ปุ่นและอังกฤษ Bosque de Bambú, camino del haiku - Bashô - Oku no Hosomichi Japones - Español อ้างอิง บุคคลที่เกิดในปี พ.ศ. 2187 กวีชาวญี่ปุ่น พุทธศาสนิกชนชาวญี่ปุ่น


text: แอ ป ดู เส้นทาง, หาเส้นทางที่ดีที่สุดในการปั่นไปถึง จุดหมาย- บริษัท กําจัดแมลงใกล้ฉัน google maps pdf ฟรีดาวน์โหลด ,Thailand Highway Traffic - แอปพลิเคชันใน Google Pla . เป็น Offline maps ที่สามารถดูได้โดยไม่ต้องใช้ Internet ซึ่งแอพ Maps.me นี้สามารถดูเส้นทางที่ดีที่สุดได้ครับ แต่ ...Pattaphon Ferrari: ข้อมูลมอเตอร์ dc brushlessข้อมูลมอเตอร์ dc brushless มอเตอร์ dc brushless ขนาด 28vdc มีสายไฟ 4 เส้น ไฟเข้าได้ 2 ชุด วงจรจ่ายไฟไปชุดละ 27 vdc มอเตอร์ dc มีคอล์... เกิดข้อผิดพลาดในการโหลดรูป ไอโฟน — ใน icloud สําหรับ ... เกิดข้อผิดพลาดในการโหลดรูป ไอโฟน ... เป็นเวลา 30 วัน หากต้องการดาวน์โหลด ... พยายามที่จะเชื่อมต่อ iPhone ของฉันกับพีซีของฉัน และ ... ติดต่อผู้จัดจําหน่ายWhatsApp VPN ที่ดีที่สุดสําหรับประเทศจีนในปี 2021 ... เคล็ดลับ: อย่าลืมดาวน์โหลด vpn ของคุณจากประเทศไทยก่อนเข้าประเทศจีน คุณจะไม่สามารถดาวน์โหลด vpn หรือติดตั้งมันได้จาก ... ติดต่อผู้จัดจําหน่ายWhatsApp ดาวน์โหลดไฟล์ไม่ได้ มือถือ | ซ่อมไฟล์วีดีโอเสีย ... ดาวน์โหลดไฟล์ไม่ได้ มือถือ. วิธีการ เปิดไฟล์ PDF ในมือถือ Android. บทความวิกิฮาวนี้จะมาแนะนําวิธีการเปิดไฟล์ PDF ในสมาร์ทโฟน Android ให้คุณเอง ง่ายที่สุด ... ติดต่อผู้จัดจําหน่ายWhatsApp ESET Antivirus NOD32 4 - การติดตั้งการดาวน์โหลดและการ ... ชื่อของฉันคือเหรียญเงินและการใช้งานและ nod32 และค่าเฉลี่ยของ 2 และผมหมายถึงเวลา fecare ฉันดาวน์โหลดไฟล์และ (ไวรัส) nod32 ให้ฉันเป็น ... ติดต่อผู้จัดจําหน่ายWhatsApp LittleGeog 26: March 2010 - เก๋ากี้ มีกรดอะมิโน 18 ชนิด และแร่ธาตุที่สําคัญๆเช่น สังกะสี เหล็ก ทองแดง แคลเซียม เจอร์มาเนียม ซีลีเนียม และฟอสฟอรัส นอกจากนี้ยังมีสารแอนตี้ ... ติดต่อผู้จัดจําหน่ายWhatsApp ค้างคาว « Chiroblog AfriBats ธรรมชาติเป็นแพลตฟอร์มการทํางานร่วมกันที่เกี่ยวกับค้างคาวแอฟริกา. มันมีการประสานงานโดยเครือข่ายจาคอบ Fahr และลงนามโดย’Uicn ค้างคาวกลุ่ม ... ติดต่อผู้จัดจําหน่ายWhatsApp เว็บยูฟ่าเบท สมัคร GAME HALL สล็อต UFABET เซ็กซี่บาคาร่า ในเกมที่ชนะรามาโป 166-88 เมื่อวันเสาร์ที่ผ่านมาเฟเยอร์สไตน์เป็นผู้ถ่ายทอดฟรีสไตล์ 200 ครั้ง (1: 27.46) และครองอันดับสองในการฟรี 50 ... ติดต่อผู้จัดจําหน่ายWhatsApp ส่วน: สําหรับผู้เริ่มต้น 2021 เมษายน หากคุณตัดสินใจที่จะดาวน์โหลดรุ่นทดลองใช้ของ Microsoft Office ให้ไปที่เว็บไซต์อย่างเป็นทางการและคลิกปุ่ม "ทดลองใช้ฟรีเป็นเวลา ... ติดต่อผู้จัดจําหน่ายWhatsApp คําค้นหา คีย์เวิร์ด | ศูนย์รวมแหล่งความรู้ คณะวิทยาศาสตร์ ... #SFF15 #Google Ads #Google Shopping #Google Shopping Ads #AdWords #โฆษณาออนไลน์ #โฆษณา Google #ขายของ #digital transformation 2019 #เมืองอัจฉริยะ smart city #smart city technology #smart city project #บัตรประชาชน #โจรไซเบอร์ ... ติดต่อผู้จัดจําหน่ายWhatsApp Google drive ประกอบด้วยอะไรบ้าง | google ให้บริการอะไรบ้าง ... คุณทําอะไรกับไดรฟ์ที่แชร์ได้บ้าง ลองถามตัวคุณเองด้วยคําถามต่อไปนี้ ดาวน์โหลด ไดร์ฟ: เว็บ (drive.googleom), Android หรือ iOS ติดต่อผู้จัดจําหน่ายWhatsApp Loom bands วิธีทําง่ายๆ | **ซิลิโคนloom bands ของ diy loom ... Loom bands วิธีทําง่ายๆ. คลิปสอนวิธีทํากําไลยางถักลายบล็อคด้วย 100% Silicone สีพาสเทลค่ะ ลายนี้พื้นฐาน. ติดต่อผู้จัดจําหน่ายWhatsApp ชีวภูมิศาสตร์ « Chiroblog นี้เป็น Shanghuang, ในมณฑลเจียงซู (ประเทศจีน), ทีมอเมริกันและจีน paleontologists ได้ค้นพบฟอสซิลของค้างคาวจํานวนมาก. ติดต่อผู้จัดจําหน่ายWhatsApp Loom bands วิธีทําง่ายๆ | **ซิลิโคนloom bands ของ diy loom ... Loom bands วิธีทําง่ายๆ. คลิปสอนวิธีทํากําไลยางถักลายบล็อคด้วย 100% Silicone สีพาสเทลค่ะ ลายนี้พื้นฐาน. ติดต่อผู้จัดจําหน่ายWhatsApp ชีวภูมิศาสตร์ « Chiroblog นี้เป็น Shanghuang, ในมณฑลเจียงซู (ประเทศจีน), ทีมอเมริกันและจีน paleontologists ได้ค้นพบฟอสซิลของค้างคาวจํานวนมาก. ติดต่อผู้จัดจําหน่ายWhatsApp Discovering The Proper Expense Control Answer For Your ... Discovering The Proper Expense Control Answer For Your Corporate. วันที่อัปเดตล่าสุด : 16-03-2021. In recent years, , ติดต่อผู้จัดจําหน่ายWhatsApp Google Maps จาก Mobile Mapper 6 - Geofumadas [email protected] + 57 312 279 6581. การเริ่มต้น; บล็อก; คุณกําลังมองหาอะไรอยู่? ติดต่อผู้จัดจําหน่ายWhatsApp แนะนํา...นวัตกรรม... +++ Innovation IT +++: มกราคม 2012 Jan 22, 2012·ช่วงสุดสัปดาห์ที่ผ่านมา บนหน้าวอลล์เฟซบุ๊กหรือทวิตเตอร์ของใครหลายคนคงมีเจ้าตัวการ์ตูนสีเหลืองหน้าตาจิ้มลิ้มคล้ายลูกเจี๊ยบ กําลังป่วน ... ติดต่อผู้จัดจําหน่ายWhatsApp ที่เจาะกระดาษวงกลมใหญ่, ที่เจาะกระดาษ รูปวงกลม ⚪ circle ... ที่เจาะกระดาษวงกลมใหญ่ เครื่องเย็บกระดาษและที่เจาะ - ซื้อ แม็กเย็บกระดาษ ราคาดี ติดต่อผู้จัดจําหน่ายWhatsApp แผนที่ปักกิ่ง, ปักกิ่ง หรือ เป่ย์จิง (จีน:, พินอิน ... แผนที่ปักกิ่ง. แผนที่ของ ปักกิ่งโรงแรม: หาตําแหน่งที่ตั้งของโรงแรมใน ปักกิ่ง ตามความนิยม ราคา หรือห้องว่างและดูรีวิว ภาพถ่ายและข้อเสนอจาก ... ติดต่อผู้จัดจําหน่ายWhatsApp การ ใช้แผนที่ดาว ป 5 ใบ งาน - ใบงานที่ 1 ดาวน์โหลดใบงาน สื่อการสอน dltv ป.3 วิชาภาษาไทย, สังคม, วิทยาการคํานวณ, สุขศึกษา, อังกฤษ. ค ปโตเลมี ง ไทโคบราห์. 11. ติดต่อผู้จัดจําหน่ายWhatsApp [-Miz_U-] การโจมตีผ่าน PDF/Flash/JavaScript พบว่า 1 ใน 600 PDF file ที่ ดาวน์โหลด มาทางอินเทอร์เนตจะมี มัลลิเชียส ซอฟแวร์ฝังอยู่ด้วย ติดต่อผู้จัดจําหน่ายWhatsApp Google drive ประกอบด้วยอะไรบ้าง | google ให้บริการอะไรบ้าง ... คุณทําอะไรกับไดรฟ์ที่แชร์ได้บ้าง ลองถามตัวคุณเองด้วยคําถามต่อไปนี้ ดาวน์โหลด ไดร์ฟ: เว็บ (drive.googleom), Android หรือ iOS ติดต่อผู้จัดจําหน่ายWhatsApp 3 สิ่งบน Google Maps ที่บางคนอาจจะไม่ทราบ - PANGpond จัดการไฟล์บน Google Drive ง่ายๆ ที่เราก็ทําได้; วิธีการตั้งค่าแอปพิเคชั่น Google Play Music; วิธีการดาวน์โหลดและติดตั้งแอปพิเคชั่น Google Chrome... ติดต่อผู้จัดจําหน่ายWhatsApp แผนที่  Creative Stop  วิธีดาวน์โหลด Google ฟรี; วิธีเปลี่ยนบัญชี Google; วิธีซิงค์ Google ปฏิทินกับ Outlook; วิธีที่จะปรากฏบน Google Maps; วิธีดาวน์โหลด Google Maps


เชื่อไหมค่ะว่าสรรพคุณของมะตูมและประโยชน์ของมะตูมนี้มีมากมายจนหลายๆ คนนึกไม่ถึงเลยทีเดียวค่ะ มะตูมเป็นอีกหนึ่งสมุนไพรไทยที่หลายๆ คนคงจะรู้จักกันเป็นอย่างดี แต่จะมีสักกี่คนที่รู้ว่า สรรพคุณของมะตูม และ ประโยชน์ของมะตูม นั้นมีมากมายเพียงใด เชื่อว่าหลายๆ คนคงจะเคยกินน้ํามัตูมกันมาบ้างอย่างแน่นอน เพราะน้ํามะตูนนั้นจะมีกลิ่นหอม ดื่มแล้วจะทําให้ชุมคอแก้กระหายได้เป็นอย่างดี และนอกจากนั้นมะตูมยังเป็นอีกหนึ่งสมุนไพรไทยที่เป็นภูมิปัญญาชาวบ้านดั้งเดิมที่ไม่เคยจางหาย แต่ทว่า สรรพคุณของมะตูม และ ประโยชน์ของมะตูม ยังคงไม่หมดแต่เพียงเท่านั้นนะค่ะ ถ้าอย่างนั้นวันนี้เราไปดู สรรพคุณของมะตูม และ ประโยชน์ของมะตูม กันเลยดีกว่านะค่ะว่าจะมีมากมายสักแค่ไหน เพียงแค่คุณรู้วิธีและนํามาใช้ให้เกิดประโยชน์รับรองว่าคุณจะมองเห็นสรรพคุณต่างๆ มากมายของสมุนไพรไทยใกล้ตัวจนอาจจะไม่ต้องเสียค่ายารักษาที่แพงๆ เลยก็ได้และแถมไม่มีพิษภัยตกค้างกับร่างกายเราอีกด้วย ว่าาแล้วเราก็มาดู สรรพคุณของมะตูม และ ประโยชน์ของมะตูม กันเลยดีกว่าค่ะ สรรพคุณ / ประโยชน์ของมะตูม ผลโตเต็มที่ – ฝานเป็นชิ้นบางๆ ตากแห้งคั่วให้เหลือง ชงรับประทาน แก้ท้องเดิน ท้องเสีย ท้องร่วง โรคลําไส้เรื้อรังในเด็ก ผลแก่จัดแต่ยังไม่สุก – น้ํามาเชื่อมรับประทานต่างขนมหวาน จะมีกลิ่นหอม และรสชวนรับประทาน บํารุงกําลัง รักษาธาตุ ขับลม ผลสุก – รับประทานต่างผลไม้ เป็นยาระบายท้อง และยาประจําธาตุของผู้สูงอายุ ที่ท้องผูกเป็นประจํา ใบ – ใส่แกงบวช เพื่อแต่งกลิ่น ราก – แก้หืด หอบ แก้ไอ แก้ไข้ ขับลม แก้มุตกิต วิธีและปริมาณที่ใช้ ใช้ผลโตเต็มที่ ฝานตากแห้ง คั่วให้เหลือง ชงน้ําดื่ม ใช้ 2-3 ชิ้น ชงน้ําเดือดความแรง 1 ใน 10 ดื่มแทนน้ําชา หรือชงด้วยน้ําเดือด 2 ถ้วยแก้ว ดื่มครั้งละครึ่งถ้วยแก้ว เสื้อผ้าแฟชั่นน่ารักๆ พร้อมส่ง มอบส่วนลดพิเศษ 10 – 45% พร้อมของแถมพิเศษเมื่อซื้อสินค้าครบ 3 ชิ้น ตั้งแต่วันนี้ถึง 31 ก.ค. 2557 นี้จ้า เสริมอกสวยอึ๋มขึ้น 2-3 คัพ เราแนะนําซิลิโคลนแบบสอดใต้ชุดชั้น เสริมอกเรียบเนียนตาราคาจําหน่ายเพียง 180 – 320 บาท เท่านั้น


เที่ยวบินจาก ปารีส ไป อีกีโตส