หน้าแรก
หน้าแรก
ในการใช้ sizeof() เราสามารถรับค่าโดยใช้ตัวแปร x โดยใช้ &x มันจะพิมพ์ที่อยู่ของมัน ตอนนี้หากเราเพิ่มค่าของ &x ก็อาจเพิ่มขึ้นในลักษณะที่แตกต่างกัน หากเพิ่มเพียงหนึ่งไบต์ แสดงว่าเป็นอักขระ หากค่าที่เพิ่มขึ้นคือ 4 แสดงว่าเป็น int หรือ float เป็นต้น โดยหาผลต่างระหว่าง &x + 1 กับ &x เราจะได้ขนาดของ x ที่
ในปัญหานี้ มีค่าทศนิยมหนึ่งค่า เราต้องหาจำนวนเซ็ตบิตในการแทนค่าไบนารี่ของมัน ตัวอย่างเช่น หากจำนวนทศนิยมคือ 0.15625 จึงมีชุดบิตหกชุด คอมไพเลอร์ C ทั่วไปใช้การแสดงจุดลอยตัวที่มีความแม่นยำเพียงจุดเดียว ก็จะได้หน้าตาประมาณนี้ ในการแปลงเป็นค่าบิต เราต้องนำตัวเลขไปเป็นตัวแปรตัวชี้หนึ่งตัว จากนั้นพิมพ
ที่นี่เราจะมาดูวิธีการพิมพ์ค่า int แบบยาวโดยใช้ฟังก์ชัน putchar() ใน C เราสามารถพิมพ์ค่าของตัวแปรบางตัวได้อย่างง่ายดายโดยใช้ printf() ใน C แต่ในที่นี้ ข้อจำกัดคือ เราไม่สามารถใช้ฟังก์ชันอื่นยกเว้น putchar( ) ดังที่เราทราบกันดีว่า putchar() ใช้เพื่อพิมพ์เฉพาะอักขระ เราสามารถใช้ฟังก์ชันนี้เพื่อพิมพ์ต
ที่นี้เราจะมาดูกันว่าโปรแกรมหนึ่งเขียนได้ไม่มี main หรือเปล่า? คำตอบคือใช่ เราสามารถเขียนโปรแกรมที่ไม่มีฟังก์ชั่น main() ได้ ในหลาย ๆ ที่ เราเห็นว่า main() เป็นจุดเริ่มต้นของการดำเนินการของโปรแกรม จากมุมมองของโปรแกรมเมอร์ นี่เป็นเรื่องจริง จากมุมมองของระบบ มันไม่เป็นความจริง ดังนั้นระบบในตอนแรกเรีย
ที่นี่เราจะมาดูวิธีการใช้ฟังก์ชัน memcpy() ใน C. ฟังก์ชัน memcpy() ใช้เพื่อคัดลอกกลุ่มข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่ง ไวยากรณ์ของ memcpy() มีลักษณะดังนี้ - void * memcpy(void * dest, const void * srd, size_t num); ในการสร้าง memcpy ของเราเอง เราต้องพิมพ์ที่อยู่ที่ระบุเป็น char* จากนั้นคัดลอกข้อมู
ใน C ไม่มีประเภทข้อมูลที่กำหนดไว้ล่วงหน้าเป็นบูล เราสามารถสร้างบูลโดยใช้ enum enum หนึ่งตัวจะถูกสร้างขึ้นเป็น bool จากนั้นใส่ค่า false และ true เป็นองค์ประกอบของ enum เท็จจะอยู่ที่ตำแหน่งแรก ดังนั้น จะเป็น 0 และจริงจะอยู่ที่ตำแหน่งที่สอง ดังนั้น จะได้รับค่า 1 ตอนนี้เราสามารถใช้เป็นประเภทข้อมูลได้ ตั
ที่นี่เราจะเห็นข้อเท็จจริงที่น่าสนใจเกี่ยวกับการเขียนโปรแกรม C เหล่านี้เป็นเหมือนด้านล่าง บางครั้ง case label ของคำสั่ง switch บางอันสามารถใส่ไว้ในคำสั่ง if-else ได้ ตัวอย่าง #include <stdio.h> main() { int x = 2, y = 2; switch(x) { case 1: &nbs
ที่นี่เราจะเห็นผลของฟังก์ชัน nextafter() และ nextforward() ใน C หรือ C++ ฟังก์ชันเหล่านี้มีอยู่ในไลบรารี math.h หรือ cmath ถ้าฟังก์ชันเป็นเหมือน nextafter(a, b) และ nextforward(a, b) ฟังก์ชันเหล่านี้ใช้เพื่อค้นหาค่าที่แสดงแทนได้ถัดไปหลังจาก a ไปในทิศทางของ b nextforward() มีพารามิเตอร์ที่สองที่แม่น
threa_cancel() ใช้เพื่อยกเลิกหนึ่งเธรดโดย ID เธรด ฟังก์ชันนี้ส่งคำขอยกเลิกหนึ่งรายการไปยังเธรดเพื่อยุติ ไวยากรณ์ของ pthread_cancel() มีลักษณะดังนี้ - int pthread_cancel(pthread_t th); ตอนนี้ ให้เราดูวิธียกเลิกเธรดโดยใช้ฟังก์ชันนี้ ตัวอย่าง #include <stdio.h> #include <unistd.h> #include
ฟังก์ชัน pthread_equal() ใช้เพื่อตรวจสอบว่าสองเธรดเท่ากันหรือไม่ ส่งกลับค่า 0 หรือค่าที่ไม่ใช่ศูนย์ สำหรับเธรดที่เท่ากัน มันจะคืนค่าที่ไม่ใช่ศูนย์ มิฉะนั้น จะคืนค่า 0 ไวยากรณ์ของฟังก์ชันนี้มีลักษณะดังนี้ - int pthread_equal (pthread_t th1, pthread_t th2); ตอนนี้ให้เราดูการทำงานของ pthread_equal() ใ
ที่นี่เราจะดูว่า pthread_self() มีผลกระทบอย่างไรใน C. ฟังก์ชัน pthread_self() ใช้เพื่อรับ ID ของเธรดปัจจุบัน ฟังก์ชันนี้สามารถระบุเธรดที่มีอยู่ได้โดยไม่ซ้ำกัน แต่ถ้ามีหลายเธรดและหนึ่งเธรดเสร็จสมบูรณ์ id นั้นก็สามารถนำมาใช้ซ้ำได้ ดังนั้นสำหรับเธรดที่รันอยู่ทั้งหมด รหัสจึงไม่ซ้ำกัน ตัวอย่าง #include &
ที่นี่เราจะเห็นผลของการเรียกระบบ fork() และ exec() ใน C. ส้อมนี้ใช้เพื่อสร้างกระบวนการใหม่โดยการทำซ้ำกระบวนการเรียก กระบวนการใหม่เป็นกระบวนการลูก ดูคุณสมบัติต่อไปนี้ โปรเซสลูกมี id โปรเซสเฉพาะของตัวเอง รหัสกระบวนการหลักของกระบวนการลูกเหมือนกับรหัสกระบวนการของกระบวนการเรียก กระบวนการลูกไม่สืบทอดการล
ที่นี่เราจะเห็นความไม่ลงรอยกันระหว่าง C และ C ++ รหัส C บางรหัสที่สามารถคอมไพล์ได้โดยใช้คอมไพเลอร์ C แต่ไม่สามารถคอมไพล์ในคอมไพเลอร์ C++ และยังส่งกลับข้อผิดพลาด เราสามารถกำหนดฟังก์ชันโดยใช้ไวยากรณ์ ซึ่งระบุประเภทอาร์กิวเมนต์หลังรายการอาร์กิวเมนต์หรือไม่ก็ได้ ตัวอย่าง #include<stdio.h> void m
ที่นี่เราจะเห็นมาโครที่ถูกสุขอนามัยใน C เราทราบการใช้มาโครใน C แต่บางครั้งก็ไม่ส่งกลับผลลัพธ์ที่ต้องการเนื่องจากมีการจับตัวระบุโดยไม่ได้ตั้งใจ หากเราเห็นรหัสต่อไปนี้ เราจะเห็นว่ารหัสทำงานไม่ถูกต้อง ตัวอย่าง #include<stdio.h> #define INCREMENT(i) do { int a = 0; ++i; } while(0) main(void) { &n
เราจะมาดูกันว่าอะไรคือความแตกต่างพื้นฐานระหว่างประเภทข้อมูลพื้นฐานและประเภทข้อมูลที่ได้รับใน C หรือ C++ ประเภทข้อมูลพื้นฐาน ประเภทข้อมูลที่ได้รับ ประเภทข้อมูลพื้นฐานเรียกอีกอย่างว่าประเภทข้อมูลดั้งเดิม ประเภทข้อมูลที่ได้รับประกอบด้วยประเภทข้อมูลพื้นฐาน ประเภทข้อมูลพื้นฐานบางประเภท ได้แก่ int, cha
ใน C เราใช้ไฟล์ ในการจัดการไฟล์ เราใช้ตัวชี้ประเภท FILE ดังนั้น FILE จึงเป็นประเภทข้อมูล สิ่งนี้เรียกว่าประเภทข้อมูลทึบแสง ดังนั้นการใช้งานจึงถูกซ่อนไว้ คำจำกัดความของ FILE เป็นแบบเฉพาะระบบ นี่คือคำจำกัดความของ FILE ในระบบ Ubuntu - คำจำกัดความของไฟล์ struct _IO_FILE { int _flags; /* Hig
เราจะมาดูวิธีการพิมพ์ตัวเลขตามลำดับที่ถูกต้องโดยใช้เธรดต่างๆ ที่นี่เราจะสร้างจำนวน n เธรด จากนั้นซิงโครไนซ์ แนวคิดคือ เธรดแรกจะพิมพ์ 1 จากนั้นเธรดที่สองจะพิมพ์ 2 ไปเรื่อยๆ เมื่อเธรดหนึ่งพยายามพิมพ์ เธรดนั้นจะล็อกทรัพยากร ดังนั้นจึงไม่มีเธรดใดสามารถใช้ส่วนนั้นได้ ตัวอย่าง #include <pthread.h> #
เราจะมาดูวิธีการใช้แนวคิดแบบมัลติเธรดเพื่อค้นหาองค์ประกอบหนึ่งในอาร์เรย์ วิธีการนี้ง่ายมาก เราจะสร้างเธรดบางส่วน จากนั้นแบ่งอาร์เรย์ออกเป็นส่วนต่างๆ เธรดที่ต่างกันจะค้นหาในส่วนต่างๆ หลังจากนั้น เมื่อพบองค์ประกอบแล้ว ให้เปิดใช้งานแฟล็กเพื่อระบุสิ่งนี้ ตัวอย่าง #include <stdio.h> #include <pt
เราจะมาดูกันว่าทำไมเราจึงควรใช้นามแฝงที่เข้มงวดใน C ก่อนที่จะพูดถึงส่วนนั้น ให้เราดูโค้ดหนึ่งตัวแล้วลองวิเคราะห์ผลลัพธ์ ตัวอย่าง #include<stdio.h> int temp = 5; int* var = &temp; int my_function(double* var) { temp = 1; &n
เราจะเห็นปัญหาที่น่าสนใจอย่างหนึ่ง ในปัญหานี้เราจะมาดูวิธีการพิมพ์ต้นคริสต์มาสแบบสุ่ม ต้นไม้ก็จะริบหรี่เหมือนไฟต้นคริสต์มาส ในการพิมพ์ต้นคริสต์มาส เราจะพิมพ์ปิรามิดขนาดต่างๆ ไว้ข้างใต้กัน สำหรับใบประดับตกแต่ง สุ่มพิมพ์อักขระจากรายการอักขระที่กำหนด ความสูงและการสุ่มสามารถปรับได้ ที่นี่หลังจากสร้างต