คำถามติดแท็ก void-pointers

13
C ไม่ใช่เรื่องยาก: void (* (* f []) ()) ()
ฉันเพิ่งเห็นภาพวันนี้และคิดว่าฉันชอบคำอธิบาย ดังนั้นนี่คือภาพ: ฉันพบว่ามันสับสนและสงสัยว่ารหัสดังกล่าวเป็นประโยชน์ ฉันไปที่รูปภาพและพบรูปภาพอื่นในรายการ reddit นี้และนี่คือรูปภาพนั้น: ดังนั้น "การอ่านแบบวน" นี้เป็นสิ่งที่ถูกต้อง? นี่เป็นวิธีคอมไพเลอร์ของ C หรือไม่? มันคงจะดีถ้ามีคำอธิบายที่ง่ายกว่าสำหรับโค้ดแปลก ๆ นี้ นอกจากรหัสประเภทนี้จะมีประโยชน์หรือไม่ ถ้าเป็นเช่นนั้นที่ไหนและเมื่อไหร่? มีคำถามเกี่ยวกับ "กฎส่วนก้นหอย" แต่ฉันไม่เพียงแค่ถามว่ามันถูกนำไปใช้อย่างไรหรือวิธีการอ่านนิพจน์ที่มีกฎนั้น ฉันกำลังถามถึงการใช้ความถูกต้องของนิพจน์และกฎของเกลียวเช่นกัน เกี่ยวกับสิ่งเหล่านี้คำตอบที่ดีมีการโพสต์แล้ว

8
เลขคณิตของตัวชี้สำหรับตัวชี้โมฆะใน C
เมื่อมีการชี้ไปยังประเภทใดประเภทหนึ่ง (พูดint, char, float, .. ) จะเพิ่มขึ้นค่าของมันจะเพิ่มขึ้นตามขนาดของชนิดข้อมูลว่า หากvoidตัวชี้ที่ชี้ไปยังข้อมูลขนาดxเพิ่มขึ้นมันจะไปยังจุดxไบต์ข้างหน้าได้อย่างไร คอมไพเลอร์รู้ได้อย่างไรว่าจะเพิ่มxมูลค่าของตัวชี้?


15
แนวคิดของตัวชี้โมฆะในการเขียนโปรแกรม C
เป็นไปได้หรือไม่ที่จะตรวจสอบตัวชี้โมฆะโดยไม่ต้องใช้การพิมพ์ในภาษาโปรแกรม C? นอกจากนี้มีวิธีการทั่วไปฟังก์ชั่นที่สามารถรับตัวชี้และเก็บไว้ในโมฆะตัวชี้และโดยใช้ตัวชี้โมฆะนั้นเราสามารถทำฟังก์ชั่นทั่วไป? สำหรับเช่น: void abc(void *a, int b) { if(b==1) printf("%d",*(int*)a); // If integer pointer is received else if(b==2) printf("%c",*(char*)a); // If character pointer is received else if(b==3) printf("%f",*(float*)a); // If float pointer is received } ฉันต้องการทำให้ฟังก์ชั่นนี้เป็นแบบทั่วไปโดยไม่ต้องใช้คำสั่ง if-else - เป็นไปได้ไหม? นอกจากนี้หากมีบทความทางอินเทอร์เน็ตที่ดีซึ่งอธิบายแนวคิดของตัวชี้โมฆะมันจะมีประโยชน์ถ้าคุณสามารถระบุ URL ได้ นอกจากนี้การคำนวณทางคณิตศาสตร์ด้วยพอยน์เตอร์พอยน์เตอร์จึงเป็นไปได้หรือไม่?
129 c  void-pointers 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.