คำถามติดแท็ก kernighan-and-ritchie

1
ทำไมหนังสือ“ The C Programming Language” ถึงบอกว่าฉันต้องโยน malloc?
วันนี้ผมมาถึงหน้า167ของภาษา C Programming (ฉบับที่สองไบรอัน W. Kernighan และเดนนิสเอ็ม Ritchie)mallocและพบว่าผู้เขียนบอกว่าผมต้องทิ้ง นี่คือส่วนหนึ่งจากหนังสือ: 7.8.5 การจัดการพื้นที่เก็บข้อมูล ฟังก์ชัน malloc และ calloc รับบล็อกของหน่วยความจำแบบไดนามิก void *malloc(size_t n) ส่งคืนตัวชี้ไปยัง n ไบต์ของที่เก็บข้อมูลที่ไม่กำหนดค่าเริ่มต้นหรือ NULL ถ้าไม่สามารถดำเนินการตามคำขอได้ void *calloc(size_t n, size_t size) ส่งกลับตัวชี้ไปยังพื้นที่ว่างเพียงพอสำหรับอาร์เรย์ของวัตถุ n ขนาดที่ระบุหรือ NULL ถ้าคำขอไม่สามารถตอบสนอง ที่เก็บข้อมูลถูกเตรียมใช้งานเป็นศูนย์ ตัวชี้ที่ส่งคืนโดย malloc หรือ calloc มีการจัดตำแหน่งที่เหมาะสมสำหรับวัตถุที่เป็นปัญหา แต่ต้องถูกส่งลงในประเภทที่เหมาะสมเช่นเดียวกับใน int *ip; ip = (int *) calloc(n, sizeof(int)); ผมรู้อยู่แล้วว่าmalloc(และครอบครัว) …

13
แอปพลิเคชันของตัวดำเนินการประมวลผล ## preprocessor และ gotchas ที่ต้องพิจารณามีอะไรบ้าง?
ดังที่ได้กล่าวไว้ในคำถามก่อนหน้านี้หลายข้อฉันกำลังทำงานผ่าน K&R และกำลังอยู่ในพรีโปรเซสเซอร์ สิ่งที่น่าสนใจอีกอย่างหนึ่ง - สิ่งที่ฉันไม่เคยรู้มาก่อนจากการพยายามเรียนรู้ C - ก่อนหน้านี้คือ##ตัวดำเนินการก่อนโปรเซสเซอร์ ตาม K&R: ตัวดำเนินการตัวประมวลผลก่อน## จัดเตรียมวิธีการต่ออาร์กิวเมนต์ที่แท้จริงระหว่างการขยายมาโคร หากพารามิเตอร์ในข้อความแทนที่อยู่ติดกับ a ##พารามิเตอร์จะถูกแทนที่ด้วยอาร์กิวเมนต์จริง ##และช่องว่างรอบ ๆ จะถูกลบออกและผลลัพธ์จะถูกสแกนใหม่ ตัวอย่างเช่นแมโครpaste เชื่อมสองอาร์กิวเมนต์: #define paste(front, back) front ## back เพื่อสร้างโทเค็นpaste(name, 1) name1 ทำไมคนถึงใช้สิ่งนี้ในโลกแห่งความเป็นจริง ตัวอย่างการใช้งานจริงมีอะไรบ้างและมีข้อควรพิจารณาหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.