คำถามติดแท็ก truncation

22
วิธีที่ชาญฉลาดในการตัดทอนสตริงที่ยาว
ใครบ้างมีโซลูชัน / ไลบรารีที่ซับซ้อนยิ่งขึ้นสำหรับตัดทอนสตริงด้วย JavaScript และวางจุดไข่ปลาไว้ท้ายกว่าแบบที่เห็นได้ชัด: if (string.length > 25) { string = string.substring(0, 24) + "..."; }

3
การตัดทอนเลขจำนวนเต็มบิทฟิลด์ที่ไม่ได้ลงนามระหว่าง C ++ และ C ที่ไม่สอดคล้องกันในคอมไพเลอร์ต่างกัน
แก้ไข 2 : ฉันแก้ไขข้อผิดพลาดในการทดสอบที่ผิดปกติเมื่อฟังก์ชั่นก่อนหน้านี้อาศัยอยู่ในไฟล์ต้นฉบับ C ++ แต่ย้ายไปเป็นคำต่อคำของไฟล์ C เริ่มส่งคืนผลลัพธ์ที่ไม่ถูกต้อง MVE ด้านล่างอนุญาตให้สร้างปัญหาขึ้นอีกครั้งด้วย GCC อย่างไรก็ตามเมื่อฉันตั้งใจรวบรวมตัวอย่างกับ Clang (และต่อมากับ VS) ฉันได้ผลลัพธ์ที่ต่างออกไป! ฉันไม่สามารถคิดได้ว่าจะจัดการสิ่งนี้เป็นข้อบกพร่องในคอมไพเลอร์ตัวใดตัวหนึ่งหรือเป็นการรวมตัวของผลลัพธ์ที่ไม่ได้กำหนดซึ่งอนุญาตโดยมาตรฐาน C หรือ C ++ แปลกไม่มีคอมไพเลอร์ให้คำเตือนใด ๆ เกี่ยวกับการแสดงออก ผู้ร้ายคือการแสดงออกนี้: ctl.b.p52 << 12; ที่นี่p52พิมพ์เป็นuint64_t; มันยังเป็นส่วนหนึ่งของสหภาพ (ดูcontrol_tด้านล่าง) การดำเนินการกะจะไม่สูญเสียข้อมูลใด ๆ เนื่องจากผลลัพธ์ยังพอดีกับ 64 บิต อย่างไรก็ตาม GCC ตัดสินใจตัดทอนผลลัพธ์เป็น 52 บิตหากฉันใช้คอมไพเลอร์ C ! ด้วยคอมไพเลอร์ C ++ ผลลัพธ์ 64 บิตทั้งหมดจะถูกเก็บไว้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.