CodeVisionAVR C Complier ตอนที่ 1 ในตอนนี้ เราจะมาเริ่มเข้าเนื้อหากฏทั่วๆ ไปของการเขียนภาษาซี กับ CodeVisionAVR C Complier โดยเน้นเฉพาะที่ต้องใช้กับ Complier ซึ่งเราอาจจะไม่ได้ลงไปในรายละเอียดทุกๆ ส่วนของภาษาซี แต่จะเน้นเฉพาะที่ต้องใช้บ่อยๆ ในการทำงานกับไมโครคอนโทรลเลอร์เท่านั้น ซึ่งรายละเอียดทั้งหมดของภาษาซี เพื่อนๆสามารถหาอ่านได้ตามหนังสือภาษาซี ที่มีขายอยู่ทั่วไป
The C Preprocessor
The C Preprocessor directives ยอมอนุญาต ให้คุณกระทำการได้ดังนี้
โดย Preprocessor จะประกาศไว้ก่อน function main(void) ทุกครั้ง Preprocessor ที่สำคัญได้แก่
#include ทำหน้าที่รวมไฟล์อื่นๆ เข้ามาในไฟล์ซอร์สโค๊ดของคุณ เราสามารถรวมไฟล์ด้วยคำสั่ง #include ได้มากที่สุด 300 ไฟล์
รูปแบบการใช้งาน
#include <file_name> ไฟล์ที่ถูกเรียกเข้ามาร่วมด้วยนี้ จะต้องอยู่ภายในโฟลเดอร์ include directory ของ complier
หรือรูปแบบนี้
#include "file_name" ไฟล์ที่ถูกเรียกเข้ามาร่วมด้วยนี้ จะต้องอยู่ภายในโฟลเดอร์เดียวกันกับไฟล์ซอร์สโค๊ด
#define ใช้สำหรับในการกำหนด macro ( macro คือคำสั่งที่ผู้ใช้เขียนขึ้นเอง หรือคำสั่งที่ประกอบด้วยคำสั่งย่อยๆ คำสั่งซึ่งแทนด้วยสัญลักษณ์ เพียงสัญลักษณ์เดียว ) ตัวอย่างเช่น
#define ALFA 0xff เป็นการแทน ALFA ด้วยค่าเลขฐาน 0xff
บางครั้งเราสามารถที่จะให้ parameter กับตัวมาโคร ได้ด้วย เช่น
#define SUM(a,b) a+b
int i = SUM(2,3); เราจะได้ค่า i = 5
ถ้ามีการใช้ # ร่วมกับ parameter ของมาโคร จะเป็นแปลง parameter ของมาโคร ให้กลายเป็น ตัวอักษร
#define PRINT_MESSAGE(t) printf(#t)
เมื่อเราเรียกใช้คำสั่ง PRINT_MESSAGE(Hello) เราจะได้ผลลัพธ์เหมือนกับ printf("Hello");
เราสามารถทำการต่อเชื่อมตัว parameter 2 ตัวของมาโครได้ โดยใช้สัญลักษณ์ ## สองตัวติดกัน ดังตัวอย่าง
#define ALFA(a,b) a##b
char ALFA(x,y) = 1; เราจะได้ผลลัพธ์เหมือนกับ char xy = 1;
หากว่ามาโครของเรามีจำนวนบรรทัดมากกว่า 1 บรรทัด เราสามารถขึ้นบรรทัดใหม่ได้ โดยการใช้ \ ก่อนจบบรรทัดเก่า
เราสามารถยกเลิกการใช้มาโครได้ด้วยใช้คำสั่ง #undef ALFA เป็นการยกเลิกมาโคร ALFA
|