หน้าแรก
หน้าแรก
ภาษาโปรแกรมหลายภาษารองรับแนวคิดที่เรียกว่า Escape Sequence เมื่ออักขระนำหน้าด้วยแบ็กสแลช (\) จะเรียกว่า Escape Sequence และมีความหมายพิเศษต่อคอมไพเลอร์ ตัวอย่างเช่น \n ในคำสั่งต่อไปนี้เป็นอักขระที่ถูกต้องและเรียกว่าอักขระขึ้นบรรทัดใหม่ − char ch = '\n'; ในที่นี้ อักขระ n นำหน้าด้วยแบ็กสแลช
ใน C หรือ C++ มีประเภทข้อมูลที่แตกต่างกันสี่ประเภท ที่ใช้สำหรับข้อมูลประเภทจำนวนเต็ม ประเภทข้อมูลทั้งสี่นี้สั้น int ยาวและยาว แต่ละประเภทข้อมูลเหล่านี้ใช้พื้นที่หน่วยความจำต่างกัน ขนาดแตกต่างกันไปตามสถาปัตยกรรมและระบบปฏิบัติการที่แตกต่างกัน บางครั้ง int ใช้เวลา 4 ไบต์หรือบางครั้งใช้เวลา 2 ไบต์ สิ่งน
เราใช้ const qualifier เพื่อประกาศตัวแปรเป็นค่าคงที่ นั่นหมายความว่าเราไม่สามารถเปลี่ยนค่าได้เมื่อตัวแปรได้รับการเตรียมใช้งานแล้ว การใช้ const มีประโยชน์อย่างมาก ตัวอย่างเช่น หากคุณมีค่าคงที่ของค่า PI คุณจะไม่ต้องการส่วนใดของโปรแกรมแก้ไขค่านั้น ดังนั้นคุณควรประกาศว่าเป็นการบังคับ ออบเจ็กต์ที่ประกาศ
ให้เราดูว่าชุดสแกนใน C คืออะไร ชุดสแกนนั้นเป็นตัวระบุที่รองรับโดยฟังก์ชันตระกูล scanf มันถูกแสดงโดย %[] ภายใน scanset เราสามารถระบุอักขระได้เพียงตัวเดียวหรือชุดอักขระ (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) เมื่อชุดสแกนได้รับการประมวลผลแล้ว scanf() สามารถประมวลผลเฉพาะอักขระที่กล่าวถึงในชุดสแกนเท่านั้น ตัวอย่า
ใน C หรือ C ++ เครื่องหมายจุลภาค , ใช้ในวัตถุประสงค์ที่แตกต่างกัน เราจะมาดูกันว่าจะใช้ได้อย่างไร จุลภาคในฐานะโอเปอเรเตอร์ ตัวดำเนินการเครื่องหมายจุลภาคเป็นตัวดำเนินการไบนารีที่ประเมินตัวถูกดำเนินการตัวแรก แล้วละทิ้งผลลัพธ์ จากนั้นจึงประเมินตัวถูกดำเนินการที่สองและส่งกลับค่า ตัวดำเนินการจุลภาค
ที่นี่เราจะดูว่าผลลัพธ์จะเป็นอย่างไรหากเราใช้ตัวเลขติดลบเพื่อให้ได้โมดูลัส ให้เราดูโปรแกรมต่อไปนี้และผลลัพธ์เพื่อทำความเข้าใจ ตัวอย่าง #include<stdio.h> int main() { int a = 7, b = -10, c = 2; printf("Result: %d", a % b / c); } ผลลัพธ์ Result: 3 ในที่นี้ลำด
ที่นี่เราจะมาดูวิธีการกำหนดมาโครที่เรียกว่า PRINT(x) และสิ่งนี้จะพิมพ์ค่าของ x ที่ส่งผ่านเป็นอาร์กิวเมนต์ เพื่อแก้ปัญหานี้ เราจะใช้ตัวดำเนินการ stringize การใช้ตัวดำเนินการนี้ x จะถูกแปลงเป็นสตริง จากนั้นเมื่อเรียกใช้ฟังก์ชัน printf() ภายใน ค่าของ x จะถูกพิมพ์ออกมา เรามาดูตัวอย่างเพื่อทำความเข้าใจก
ในส่วนนี้เราจะมาดูกันว่าสามารถเขียนมาโครหลายบรรทัดใน C ได้อย่างไร เราสามารถเขียนมาโครหลายบรรทัดเช่นฟังก์ชันได้ แต่สำหรับมาโครแต่ละบรรทัดจะต้องสิ้นสุดด้วยอักขระแบ็กสแลช \ หากเราใช้วงเล็บปีกกา {} และมาโครลงท้ายด้วย } ก็อาจสร้างข้อผิดพลาดบางอย่าง เราจึงใส่ทั้งหมดลงในวงเล็บได้ โปรดตรวจสอบโปรแกรมต่อไปนี
ที่นี่เราจะมาดูกันว่าโครงสร้างใน C และโครงสร้างใน C ++ มีความแตกต่างกันอย่างไร โครงสร้าง C++ ส่วนใหญ่จะเหมือนกับคลาสใน C++ ในโครงสร้าง C สมาชิกทั้งหมดเป็นแบบสาธารณะ แต่ใน C++ จะเป็นแบบส่วนตัวตามค่าเริ่มต้น ความแตกต่างอื่นๆ อยู่ด้านล่าง โครงสร้าง C โครงสร้าง C++ โครงสร้างในภาษา C ไม่สามารถมีฟังก์ชั
ที่นี่เราจะดูว่าสหภาพและโครงสร้างที่ไม่ระบุชื่อใน C คืออะไร สหภาพและโครงสร้างที่ไม่ระบุชื่อเป็นสหภาพและโครงสร้างที่ไม่มีชื่อ เนื่องจากไม่มีชื่อ ดังนั้นเราจึงไม่สามารถสร้างวัตถุโดยตรงได้ เราใช้มันเป็นโครงสร้างหรือสหภาพที่ซ้อนกัน นี่คือตัวอย่างของสหภาพและโครงสร้างที่ไม่เปิดเผยตัว struct { &nbs
ในส่วนนี้เราจะมาดูกันว่าอะไรคือตัวอักษรผสมใน C. ตัวอักษรผสมถูกนำมาใช้ในมาตรฐาน C99 ใน C. การใช้คุณสมบัตินี้ มันสามารถสร้างวัตถุที่ไม่มีชื่อได้ ในตัวอย่างต่อไปนี้ เราจะมาดูวิธีการใช้ตัวอักษรผสมเพื่อสร้างวัตถุโดยไม่มีชื่อ ตัวอย่าง #include<stdio.h> struct point { int x;  
เลย์เอาต์หน่วยความจำสำหรับโปรแกรม C มีลักษณะดังนี้ มีไม่กี่ระดับ เหล่านี้คือ − กลุ่มสแต็ก ส่วนฮีป ส่วนข้อความ ส่วนข้อมูล ตอนนี้เรามาดูกันว่าส่วนต่างๆ เหล่านี้มีฟังก์ชันอะไรบ้าง ซีเนียร์ ส่วนและคำอธิบาย 1 กอง กองกระบวนการประกอบด้วยข้อมูลชั่วคราว เช่น พารามิเตอร์วิธีการ/ฟังก์ชัน ที่อยู่ผู้ส่ง
ฟังก์ชัน free() ใช้เพื่อจัดสรรหน่วยความจำในขณะที่จัดสรรโดยใช้ malloc(), calloc() และ realloc() ไวยากรณ์ของฟรีเป็นเรื่องง่าย เราใช้ฟรีกับพอยน์เตอร์ จากนั้นจะสามารถล้างหน่วยความจำได้ free(ptr); free() ไม่ได้ใช้ขนาดใด ๆ เป็นพารามิเตอร์ แต่มีเพียงตัวชี้เท่านั้น ดังนั้นคำถามก็คือว่าฟังก์ชัน free() รู้เก
ที่นี่เราจะมาดูวิธีสร้างเอาต์พุตภาษาแอสเซมบลีจากซอร์สโค้ด C หรือ C++ โดยใช้ gcc gcc มีคุณสมบัติที่ยอดเยี่ยมในการรับเอาต์พุตระดับกลางทั้งหมดจากซอร์สโค้ดขณะดำเนินการ เพื่อให้ได้ผลลัพธ์ของแอสเซมเบลอร์ เราสามารถใช้ตัวเลือก -S สำหรับ gcc ตัวเลือกนี้แสดงผลลัพธ์หลังจากคอมไพล์ แต่ก่อนส่งไปยังแอสเซมเบลอร์ ไ
ในส่วนนี้ เราจะมาดูกันว่าอะไรคือความแตกต่างระหว่างมาโครและฟังก์ชันใน C แมโครได้รับการประมวลผลล่วงหน้า ดังนั้นจึงหมายความว่ามาโครทั้งหมดจะได้รับการประมวลผลล่วงหน้าในขณะที่คอมไพล์ ฟังก์ชันไม่ได้ถูกประมวลผลล่วงหน้า แต่คอมไพล์แล้ว ในมาโครจะไม่มีการตรวจสอบประเภท ดังนั้น จึงอาจเกิดปัญหาบางอย่างสำหรับอินพ
ใน C หรือ C++ เราสามารถใช้ตัวแปรคงที่ได้ ค่าตัวแปรคงที่ไม่สามารถเปลี่ยนแปลงได้หลังจากการเริ่มต้น ในส่วนนี้เราจะมาดูวิธีการเปลี่ยนค่าของตัวแปรคงที่บางตัว หากเราต้องการเปลี่ยนค่าของตัวแปรคงที่ จะทำให้เกิดข้อผิดพลาดในการคอมไพล์เวลา โปรดตรวจสอบรหัสต่อไปนี้เพื่อให้เข้าใจมากขึ้น ตัวอย่าง #include <std
ฟังก์ชัน wcspbrk() เป็นฟังก์ชันที่สร้างขึ้นใน C หรือ C++ โดยจะค้นหาชุดอักขระแบบกว้างที่อยู่ในสตริงแบบกว้างในสตริงแบบกว้างอีกชุดหนึ่ง ฟังก์ชันนี้มีอยู่ในไฟล์ส่วนหัวของ cwhar ฟังก์ชันนี้รับสองอาร์กิวเมนต์ อาร์กิวเมนต์แรกคือปลายทาง และอาร์กิวเมนต์ที่สองคือต้นทาง เป็นปลายทางเราต้องผ่าน null สิ้นสุดสตริ
หนึ่งในคำถามที่พบบ่อยที่สุดคือค่าของค่าข้อมูลดั้งเดิมที่ยังไม่ได้กำหนดค่าใน C หรือ C++ มีค่าเท่าใด คำตอบก็จะแตกต่างกันไปในแต่ละระบบ เราสามารถสันนิษฐานได้ว่าคอมไพเลอร์จะกำหนด 0 ให้กับตัวแปร สามารถทำได้สำหรับจำนวนเต็มเป็น 0 สำหรับ float 0.0 แต่ข้อมูลประเภทอักขระจะเป็นอย่างไร ตัวอย่าง #include <iost
ที่นี่เราจะดูว่าโปรแกรม C ทำงานอย่างไรในระบบ โดยพื้นฐานแล้วนี่เป็นกระบวนการคอมไพล์ของโปรแกรม C ไดอะแกรมต่อไปนี้จะแสดงให้เห็นว่าสามารถเรียกใช้ซอร์สโค้ด C ได้อย่างไร ในแผนภาพด้านบนมีขั้นตอนต่างๆ − รหัส C − นี่คือรหัสที่คุณเขียน รหัสนี้ถูกส่งไปยังส่วนตัวประมวลผลล่วงหน้า กำลังประมวลผลล่วงหน้า − ใน
ที่นี่ เราจะมาดูวิธีการสร้างโค้ดที่ประมวลผลล่วงหน้าหรือตัวประมวลผลล่วงหน้าจากซอร์สโค้ดของโปรแกรม C หรือ C++ หากต้องการดูโค้ดที่ประมวลผลล่วงหน้าโดยใช้คอมไพเลอร์ g++ เราต้องใช้ตัวเลือก -E กับ g++ ตัวประมวลผลล่วงหน้าจะรวมคำสั่ง # ทั้งหมดไว้ในโค้ด และยังขยายฟังก์ชัน MACRO ด้วย ไวยากรณ์ g++ -E program.