> For the complete documentation index, see [llms.txt](https://docs.aic-eec.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques.md).

# C/C++ Techniques

- [Makefile in action](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/makefile-in-action.md)
- [Object Oriented Programming (OOP) in C++](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/object-oriented-programming-oop-in-c++.md)
- [Class and Object](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/object-oriented-programming-oop-in-c++/class-and-object.md)
- [Encapsulation and Abstraction](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/object-oriented-programming-oop-in-c++/encapsulation-and-abstraction.md)
- [Polymorphism and Inheritance](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/object-oriented-programming-oop-in-c++/encapsulation-and-inheritance.md)
- [C/C++ Preprocessing](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing.md): เทคนิคนี้จะเป็นการทบทวนผู้เรียนน ในสิ่งที่เคยตกหล่นไปหรือยังไม่เคยรู้เกี่ยวกับการทำงานในลักษณะนี้แม้จะเคยเห็นมาบ้างเราจะมาลงรายละเอียดทางด้านเทคนิคและการนำไปประยุกต์ทาง Embedded System ดังนี้ครับ
- [Macro](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing/macro.md): ้เป็นคำสั่งที่ใช้ในการกำหนดค่า ประเภท หรือฟังก์ชัน โดยจะทำในกระบวนการ Preprocessing ทำไมถึงไม่ทำในโปรแกรมไปเลยทำไม่ต้องทำให้ยุ่งยาก งั้นมาดูกันครับว่าทำไมต้องใช้
- [Quiz Macro](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing/macro/quiz-macro.md): ตอบคำถามจากสไลด์
- [File Inclusion](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing/file-inclusion.md): จะเป็นการ Include ที่เราพบได้ทั่วไปในโปรแกรมที่เขียน เพราะทุกโปรแกรมต้องมีการ Include library หรือ header ไฟล์ที่ใช้มาประกอบการทำงาน
- [Conditional Compilation](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing/conditional-compilation.md): เทคนิคนี้จะใช้เงื่อนไขเหมือน if-else ที่เราเขียนโปรแกรมกันมาใช้งานครับ แล้วมันแตกต่างกับเงื่อนไขปกติที่เราใช้กันยังไงมาดูกันครับ
- [Pragma directive](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing/pragma-directive.md): โดยปกติเทคนิคนี้จะไม่คอยเจอในตอนที่เรียน แม่กระทั่งในหนังสือที่อ่านแต่อาจจะพบได้ในงานจริงๆ รวมถึงการโปรแกรมเพื่อออกแบบเชิงลึก ถ้าใครที่มาถึงตรงนี้สงสัยและอยากรู้เรื่องนี้มาดูกันครับ
- [Quiz Pragma](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/c-c++-preprocessing/pragma-directive/quiz-pragma.md): ตอบคำถามจากสไลด์
- [Binary, Octal and Hexadecimal Numbers](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/binary-octal-and-hexadecimal-numbers.md)
- [Array and properties of an array](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/array-and-properties-of-an-array.md)
- [Get to know with arrays](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/array-and-properties-of-an-array/get-to-know-with-arrays.md)
- [Implement example](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/array-and-properties-of-an-array/implement-example.md)
- [What's next?](https://docs.aic-eec.com/c-c++-for-embedded-programming/c-programming-techniques/whats-next.md)
