หลักการใช้ #include

เราสามารถ แบ่งการ Include ในภาษา C ได้เป็น 2 แบบ นั้นก็คือ

#include <file>

และ

#include "file"

สังเกตได้ว่าจะแตกต่างกันที่เครื่องหมาย “” และ < >

เราจะใช้ < >

#include <file>

สำหรับการ include ไฟล์ ที่อยู่ใน folder ของ compiler เช่น header files (.h) ที่เป็นมาตรฐาน string.h, stdio.h, math.h หรือ library ที่เป็นมาตรฐานมากับ compiler อยู่แล้ว เหล่านี้เป็นต้น

ส่วน “”

#include "file"

จะเป็นการ include header file ที่ไม่ได้อยู่ใน folder compiler หรือ เป็น header file (.h) ที่เราสร้างขึ้นมาเอง

การใช้ #include ที่ไม่ถูกต้องอาจจะทำให้ compile แล้วเกิด warning หรือ error ก็ได้ขึ้นอยู่กับ compiler แต่ละตัว ดังนั้นควรจะใช้ #include ให้ถูกต้องกันด้วยละ

มารู้จักการ Comment ในภาษา C

เราสามารถแบ่ง การ comment ในการเขียนโปรแกรมภาษา C ออกได้เป็น 2 แบบ นั้นก็คือ Line comment กับ Block comment

Line comment จะสามารถ comment ได้ เพียงบรรทัดเดียวต่อครั้งโดยใช้ เครื่องหมายทับ 2 ตัว (//) หน้าบรรทัดที่เราอยาก comment
ตัวอย่าง Line comment

#include <stdio.h>

int main(void)
{

    // This is 
    // block 
    // comment
    printf("Hello world\n");

    return 0;
}

Block comment สามารถ comment code ได้หลายบรรทัดในครั้งเดียว โดยใช้ เครื่องหมาย ทับแล้วตามด้วยเครื่องหมายดอกจัน (/*) เพื่อเปิด comment และ เครื่องหมายดอกจันแล้วตามด้วยเครื่องหมายทับ(*/) เพื่อ ปิด comment
ตัวอย่าง Block comment

#include <stdio.h>

int main(void)
{

    /* This is 
    block 
    comment */ 
    printf("Hello world\n");

    return 0;
}

แต่การใช้ Block comment มีข้อควรระวังก็คือ code ที่เราจะ comment นั้นห้ามมี block comment อยู่ (ห้าม block comment ซ้อนกัน) จะทำให้ compile ไม่ผ่านได้
ตัวอย่าง Block comment ที่ compile ไม่ผ่าน

#include <stdio.h>

int main(void)
{

    /* This is 
    /*block */
    comment */ 
    printf("Hello world\n");

    return 0;
}

ตัวเลขจำนวนจริง (Real number) VS ตัวเลขจำนวนเต็ม (Integer number)

ในภาษา C เราสามารถแบ่งตัวแปรที่เป็นตัวเลขออกได้เป็น 2 ประเภทนั้นก็คือ ตัวเลขจำนวนจริง (Real number) และ ตัวเลขจำนวนเต็ม (Integer number)


ตัวเลขจำนวนจริง ก็คือ ตัวเลขที่เราวัดได้จากค่าจริงๆเช่น ส่วนสูงของเรา 180.23 เซนติเมตร, ต้นไม้สูง 10.23 เมตร หรือ ความเร็ว 64.53 กิโลเมตรต่อชั่วโมง เป็นต้นเราจะเห็นได้ว่าตัวเลขเหล่านี้ล้วนแล้วแต่เป็นค่าที่มีทศนิยม เพราะค่าเหล่านี้ล้วนแต่เป็นค่าที่วัดได้จริงๆ ดังนั้นในภาษา C หรือในภาษาโปรแกรมมิ่งทางคอมพิวเตอร์ จึงเรียกว่าว่าเป็น ตัวเลขจำนวนจริง Real number นั้นเอง


ตัวเลขจำนวนเต็ม ก็คือตัวเลขที่ไม่มีจุดทศนิยมนั้นเอง ตัวอย่างของ ตัวเลขจำนวนเต็ม(Integer number) เช่น รถ 3 คัน, จักรยาน 3 คัน, คน 1581 คน, บ้าน 1 หลัง เหล่านี้เป็นต้น

ทีนี้เพื่อนๆก็คงจะรู้จักกับตัวเลขในภาษา C ทั้ง 2 ประเภทกันแล้ว ว่าแต่ละประเภทเป็นอย่างไรและแตกต่างกันอย่างไร

วิธี Setting Cppcheck ให้ใช้งานกับ Sublime Text หรือ Notepad++

เวลาเราใช้ Cppcheck เพื่อตรวจสอบ Source code ของเรา หากเราเจอ error หรือ warning แล้วต้องการแก้ไขผ่าน Text Editor ที่เราใช้งานอยู่เป็นประจำเช่น Sublime Text หรือ Notepad++

เราสามารถ Setting Cppcheck ได้ตามนี้เลย ก่อนอื่นให้ไปที่ Edit>Preferences
cppcheck-line-1

มาที่ Tab Applications ให้เราทำการ Add โปรแกรมที่เราอยากจะใช้เป็น Text Editor เข้าไป จากตัวอย่างจะ Add Notepad++ และ Sublime Text 3
cppcheck-line-2

โดยค่า Setting ของ Sublime Text ก็จะต้องใส่ Name, Executable path แล้วก็ Parameters โดยให้ใส่ Parameters ว่า (file):(line):0 ซึ่ง file นี้หมายถึงชื่อไฟล์ เช่น test.c และ line ก็คือเลขบรรทัด ส่วน 0 ก็คือ คอลัมน์ที่ 0 คอลัมน์แรกนั้นเอง
cppcheck-line-3

ส่วน Notepad++ ก็ใส่ Parameters ว่า –n(line) (file)
cppcheck-line-4

ลองทดลองใช้โดย Setting ให้ Sublime Text เป็นตัว Default กดเช็ค Code ดูมี Warning ดังภาพ แล้วดับเบิลคลิกดูหน่อย
cppcheck-line-0

โปรแกรมก็จะเปิด Sublime Text ขึ้นมาแล้ววิ่งไปที่บรรทัดที่มีปัญหาได้อย่างถูกต้องแล้ว
cppcheck-line-5

ขนาดของตัวแปรในภาษา C และค่าสูงสุดต่ำสุดของตัวแปรนั้นๆ

ขนาดของตัวแปรในภาษา C และค่าสูงสุดต่ำสุดของตัวแปรนั้นๆ

จากตารางนี้จะเห็นว่ามีการใส่คำว่า ขั้นต่ำ (At least) ซึ่งหมายความว่าขนาดของตัวแปรอาจจะเปลี่ยนแปลงได้ขึ้นอยู่กับ CPU, Compiler และ OS

สำหรับ int และ Unsigned int เช่น ถ้าเป็น CPU 32บิต int และ Unsigned int จะมีขนาด 4 bytes (32 บิต)
ตัวอย่างขนาดของตัวแปรในภาษา C ด้านล่างนี้ compile จาก Windows 7 ด้วย gcc 4.9.2 -std=c99 32bit

แต่ใน Microcontroller ที่เป็น 16บิต int และ Unsigned int จะมีขนาด 2 bytes (16 บิต)

ส่วนถ้าเป็น CPU 64บิต, int และ Unsigned int แต่ละ OS จะมีขนาดทั้ง 4 bytes และ 8 bytes ขึ้นอยู่กับ Data models ตามตารางด้านล่างนี้เลย (หน่วยเป็นบิตนะในตาราง)

Cppcheck เป็นโปรแกรมอะไร เอาไว้ใช้ทำอะไรกันนะ

cppcheck_150_gui

Cppcheck เป็นเครื่องมือในการวิเคราะห์ source code ของ ภาษา C และ C++ หรือที่เรียกว่า static analysis tool ซึ่งเป็นเครื่องมือที่สามารถใช้ในการช่วยตรวจสอบคุณภาพของ code ของเราได้ โดย Cppcheck นั้น บางคนอาจจะเข้าใจผิดคิดว่า Cppcheck ใช้สำหรับตรวจสอบ Systext ของภาษา C และ C++ แต่จริงๆแล้ว Cppcheck ไม่ได้ตรวจสอบ sysntext error แต่ใช้ในการตรวจหา Bug ที่เกิดจากการเขียนโปรแกรมที่ไม่ถูกต้อง ไม่ปลอดภัย หรือมีโอกาสที่จะเกิด Bug เช่น

การไม่ได้กำหนดค่าตัวแปรก่อนใช้งาน, มีโอกาสเกิด Memory leaks, การใช้ index ของ array ที่เกินจากที่ประกาศไว้, Resource leaks , การใช้ Standard Tamplate Libray ผิด เป็นต้น

ตัวอย่าง Source code ที่ใช้กับ Cppcheck

int main()
{
    char a[10];
    a[10] = 0;
    return 0;
}

จาก Source code จะเห็นว่าเราสามารถ compile ได้ผ่าน แต่เมื่อนำไปรันใช้งานจริงจะทำให้เกิด error ได้เนื่องจาก เรียก index ของ array เกิน ที่ประกาศไว้

หากใช้ Cppcheck เพื่อตรวจสอบก่อน ตัว Cppcheck ก็จะบอกเราว่า Error Array ‘a[10]’ index 10 out of bounds

ดังนั้นสำหรับใครที่เขียนโปรแกรมภาษา C หรือ C++ ก็อยากจะแนะนำให้พอเขียนเสร็จแล้วก่อนที่จะนำไป Test ให้ลองตรวจสอบกับโปรแกรม Cppcheck ก่อนจะได้ช่วยลด Bug ลงไปได้เยอะ สำหรับใครที่อยากจะใช้ก็สามารถดาวโหลด Cppcheck ได้ที่ http://cppcheck.net/ หรืออยากลองใช้ demo ได้ที่ http://cppcheck.net/demo/

วิธีสร้าง Project กับโปรแกรม CodeBlocks

สำหรับวิธีการสร้าง Project กับ โปรแกรม CodeBlocks สามารถทำตามขั้นตอนด้านล่างนี้ได้เลย

ไปที่เมนู File > New > Project
codeblocks-project-1

เลือก Console application แล้วก็กด ปุ่ม Go
codeblocks-project-2

เลือกภาษาที่ต้องการจะเขียน ในตัวอย่างจะเลือก ภาษา C แล้วก็กด Next
codeblocks-project-3

ตั้งชื่อ Project ของเรา และเลือก Folder ที่จะให้สร้างลงที่ไหน ส่วนช่องอื่นๆ โปรแกรมจะกรอกให้อัตโนมัติ แล้วก็กด Next
codeblocks-project-4

เลือก Compliere แนะนำให้เลือกเป็น GNU GCC Compilers แล้วก็กด Finish
codeblocks-project-5

Codeblocks ก็จะสร้าง Project ขึ้นมาดังรูป
codeblocks-project-6

ถ้าเราไปดูที่ Folder ของ Project ที่เราเลือกไว้ก็จะมีไฟล์ที่สร้างขึ้นมาอัตโนมัติ 2 ไฟล์ นั้นก็คือ main.c และ test.cbp โดย ไฟล์นามสกุล .cbp เป็นไฟล์ Project ของ CodeBlocksเพื่อเอาไว้ใช้ เปิด Project ของเราทีหลังได้
codeblocks-project-7

หากเราทดลองกดปุ่ม รัน สีเขียวๆ ก็จะเห็นหน้าต่าง Console แสดงผลการทำงานของ โปรแกรม
codeblocks-project-8

ก็เป็นอันเสร็จเรียบร้อยกับการสร้าง Project กับ โปรแกรม CodeBlocks เวลาเรามาเปิด Project ของเราทีหลังก็สามารถเปิดได้จากไฟล์นามสกุล .cbp ได้เลย

CodeBlocks โปรแกรมสำหรับเขียนโปรแกรมภาษา C และ C++

สำหรับใครที่กำลังหาโปรแกรมสำหรับเขียนโปรแกรมภาษา C หรือ C++ ก็ขอแนะนำโปรแกรมตัวนี้เลย นั้นก็คือ

codeblock-logo

Code::Blocks หรือ CodeBlocks เป็นโปรแกรม IDE สำหรับไว้เขียนโปรแกรมภาษา C C++ หรือ Fortran โดยตัวโปรแกรม CodeBlocks เขียนขึ้นมาจากภาษา C++ ตัวโปรแกรมนั้นเปิดเป็น Open-source และยังเป็น Cross-platform ที่สามารถทำงานบนระบบปฏิบัติการที่หลากหลาย ไม่ว่าจะเป็น Windows, Mac หรือ Linux

หน้าตาของโปรแกรม CodeBlocks

codeblocks-screen-example

ตัวโปรแกรม CodeBlocks นั้นมีความสามารถในการ Debug แบบเต็มรูปแบบ ไม่ว่าจะเป็น breakpoints, แสดงค่าตัวแปร, รันโปรแกรมทีละบรรทัด, Disassembly, ดู Call stack, ดู Register ของ CPU ต่างๆ

debug-codeblocks

ใครสนใจจะนำมาใช้ก็สามารถดาวโหลด CodeBlocks ได้ที่นี้แบบฟรีๆเลยจ้า http://www.codeblocks.org/downloads/26

แนะนำโปรแกรมแก้ไขหรือเปิดดู xml

ในบทความนี้จะมาแนะนำโปรแกรมแก้ไขไฟล์ xml หรือจะเอาไว้เปิดดู ไฟล์ xml ก็ได้ โปรแกรมที่ว่าก็คือโปรแกรม XML Notepad 2007 บางคนอาจจะสงสัยว่าทำไมต้องใช้โปรแกรม XML Notepad 2007 เอามาเปิดไฟล์ xml ด้วย ทำไมไม่ใช้ Firefox หรือ Chorme หรือ โปรแกรมพวก text editor notepad กันละต้องลงโปรแกรมให้ยุ่งยากทำไมกัน

จริงๆแล้วโปรแกรม XML Notepad 2007 นั้นหลักๆเลยเราเอาไว้เช็คว่า ไฟล์ xml นั้นเขียนได้ถูกต้องหรือเปล่า ลืมปิด tag หรือเปล่า ซึ่งโปรแกรม XML Notepad 2007 สามารถเช็คได้ว่าโครงสร้างของ xml นั้นถูกต้องไหม
XML Notepad 2007 สามารถหามาใช้งานได้ที่ https://www.microsoft.com/en-us/download/details.aspx?id=7973 จะเห็นว่าเป็นโปรแกรมของ Microsoft นั้นเอง ใช้งานได้ดีมากๆ ที่สำคัญตัวโปรแกรมนี้เป็น Open source XML editor ที่เขียนขึ้นมาจากภาษา C#

มาดูหน้าต่างโปรแกรมกันดีกว่า อันนี้เปิดไฟล์ xml ให้ดู จะเห็นว่า โปรแกรมเขา เรียง Tag มาให้เรียบร้อยสามารถเลือกดูแต่ละ node ได้เรามองเห็นภาพโครงสร้างของ xml ได้ง่าย
XML Notepad 2007-1

ลองเปิดไฟล์ xml ที่ไม่สมบูรณื จากตัวอย่างนี้ลืมปิด tag โปรแกรมก็จะบอกว่า บรรทัดไหน มีข้อผิดพลาดยังไง
XML Notepad 2007-2

สำหรับใครที่กำลังหาโปรแกรม เอาไว้เปิดดู หรือ เอาไว้เช็ค syntax ของไฟล์ xml ก็ขอแนะนำ โปรแกรม XML Notepad 2007 เอาไว้ใช้งานกัน ใช้ดีจริงบอกต่อนะ