C/C++

บทความยังไม่เรียบร้อยครับ !!!

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

Taxonomy upgrade extras: 

เมื่อเราใช้เรียกใช้งานโปรแกรมบน shell prompt เราสามารถเพิ่มข้อมูลบางอย่างให้กับโปรแกรมเพื่อใช้ในการทำงานได้โดยการพิมพ์ข้อมูลเพิ่มเติมต่อท้ายชื่อโปรแกรม อาจเป็นข้อมูลที่เป็นคำๆ เดียวหรือหลายๆ คำก็ได้ โดยใช้ช่องว่างเป็นตัวแบ่งคำนั้นๆ (หากเป็นกลุ่มคำที่มีช่องว่าปรากฏอยู่สามารถใช้เครื่องหมายอัญประกาศ ("...") ครอบข้อมูลชุดนั้นได้เช่น "debian club" เป็นต้น) เราจะเรียกข้อมูลเหล่านี้ว่า "command-line arguments" ตัวอย่างการใช้งานคำสั่ง ls

$ ls -al /
Taxonomy upgrade extras: 

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

การจะเริ่มใช้งาน GDB ได้นั้นต้องเริ่มตั้งแต่การคอมไพล์โปรแกรมเสียก่อนด้วยการเพิ่มออพชัน "-g" เข้าไปขณะคอมไพล์โปรแกรม ซึ่งมีตัวอย่างคอมไพล์ดังต่อไปนี้

gcc -g -c main.c
g++ -g -c reciprocal.cpp
g++ -g -o reciprocal main.o reciprocal.o
Taxonomy upgrade extras: 

GNU Make หรือ make เป็นเครื่องมือควบคุมการ build โปรแกรมของยูนิกซ์ ซึ่งเป็นตัวช่วยให้เราสามารถคอมไพล์โปรแกรมที่มี source code มากๆ ได้ง่ายขึ้น แนวคิดของ make คือ หากเราต้องการคอมไพล์โปรแกรมเราก็บอก make ว่า target คืออะไร หลังจากนั้นบอกให้ make รู้ว่ากฎการสร้าง target นั้นๆ คืออะไร (rules) โดยระบุสิ่งที่เกี่ยวข้องกับการคอมไพล์นั้น (dependencies) หากมีการเปลี่ยนแปลงเกิดขึ้นจะได้ rebuild ใหม่ได้ถูกต้อง โดยมีรูปแบบ Makefile ดังต่อไปนี้

target: dependencies
<TAB>command
<TAB>...

โดย <TAB> หมายถึงกดคีย์ Tab หนึ่งครั้ง

ตัวอย่าง Makefile

Taxonomy upgrade extras: 

การคอมไพล์โปรแกรม ต้องอาศัย compiler ที่ทำหน้าที่แปลงจาก source code ที่โปรแกรมเมอร์เขียนเป็น machine code ที่สามารถทำงานบนเครื่องคอมพิวเตอร์ได้ ซึ่งบนระบบปฏิบัติการ Linux มีชุด compiler ของ GNU ให้เลือกใช้งาน โดยในที่นี่เราจะเลือกใช้งาน gcc หรือ g++ สำหรับ คอมไพล์ภาษา C และ C++ ตามลำดับ

Taxonomy upgrade extras: 

การเขียนโปรแกรมที่ดีต้องรู้จักเครื่องมือสำหรับการใช้งานโปรแกรมเสียก่อน ซึ่งเครื่องมือสำหรับเขียนโปรแกรมที่จำเป็นก็ไม่พ้น Text Editor เลือกโปรแกรม Text editor ตัวโปรดสักตัวที่คุณชื่นชอบ ไม่ว่าจะเป็น Vi nano Emacs ก็ได้ฝึกหัดใช้งานให้คล่องเพื่อจะไม่ไม่ติดขัดขณะใช้งาน หากมีการจัดรูปแบบอัตโนมัติ หรือ Syntax highlight ก็จะช่วยสำหรับการเขียนโปรแกรมของเราได้ไม่น้อยทีเดียว อาจจะเลือกใช้โปรแกรมที่มีความสามารถมากกว่า Text editor ทั่วไปที่เรามักเรียกว่า IDE หรือ Integrated Development Environment ที่รวมสภาพแวดล้อมสำหรับการเขียนโปรแกรมไว้ให้เราอย่างเพียบพร้อ

Taxonomy upgrade extras: 

เห็นสมาชิกเว็บหลายท่านเขียนเกี่ยวกับ Python หรือ Shell script ก็เลยลองเขียนเกี่ยวกับ C/C++ ดูครับ เนื่องจากภาษา C/C++ นิยมใช้มากในลินุกซ์ และมี Library มาตรฐานสำหรับการใช้งานบน Linux หรือ Unix เพื่อใช้จัดการ i/o ต่างๆ ของตัวระบบปฏิบัติการเอง หรือทรัพยากรต่างๆ โดยที่บทความนี้ผมจะใช้ C++ เป็นหลัก แต่ Library เกี่ยวกับ Linux จะเป็นภาษา C ท่านที่เขียนภาษา C ก็สามารถใช้ได้นะครับ ถ้าไม่เข้าใจสามารถถามได้ผมจะได้เขียนโค๊ดเทียบเคียงให้ ในบทความชุดนี้ผมอ้างอิงการใช้งานบน Linux เป็นหลักถึงแม้ว่าบางอย่างจะสามารถนำ

Taxonomy upgrade extras: 
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้