11
ทำไมโมฆะใน C หมายถึงไม่โมฆะ?
ในภาษาที่พิมพ์อย่างรุนแรงเช่น Java และ C #, void(หรือVoid) เป็นชนิดส่งคืนสำหรับวิธีการดูเหมือนจะหมายถึง: วิธีนี้จะไม่ส่งคืนสิ่งใดเลย ไม่มีอะไร ไม่มีการส่งคืน คุณจะไม่ได้รับอะไรจากวิธีนี้ สิ่งที่แปลกจริงๆคือใน C voidเป็นชนิดส่งคืนหรือเป็นชนิดพารามิเตอร์ method หมายความว่า: มันอาจเป็นอะไรก็ได้ คุณต้องอ่านซอร์สโค้ดเพื่อค้นหา โชคดี. หากเป็นตัวชี้คุณควรรู้ว่าคุณกำลังทำอะไรอยู่ ลองพิจารณาตัวอย่างต่อไปนี้ใน C: void describe(void *thing) { Object *obj = thing; printf("%s.\n", obj->description); } void *move(void *location, Direction direction) { void *next = NULL; // logic! return next; } เห็นได้ชัดว่าวิธีที่สองส่งกลับตัวชี้ซึ่งโดยความหมายอาจเป็นอะไรก็ได้ เนื่องจาก …