คำถามติดแท็ก undefined-behavior

13
ปรัชญาที่อยู่เบื้องหลังพฤติกรรมที่ไม่ได้กำหนด
ข้อมูลจำเพาะ C \ C ++ ทำให้พฤติกรรมไม่เปิดจำนวนมากสำหรับคอมไพเลอร์เพื่อนำไปใช้ในทางของตัวเอง มีคำถามจำนวนมากที่มักถูกถามอยู่เสมอเกี่ยวกับสิ่งเดียวกันและเรามีโพสต์ที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้: https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-ac-programmer-should-know-abo https://stackoverflow.com/questions/4105120/what-is-undefined-behavior https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points คำถามของฉันไม่ได้เกี่ยวกับพฤติกรรมที่ไม่ได้กำหนดหรือมันแย่จริงๆ ฉันรู้ถึงอันตรายและการอ้างอิงพฤติกรรมที่ไม่ได้กำหนดที่เกี่ยวข้องส่วนใหญ่จากมาตรฐานดังนั้นโปรดงดเว้นการโพสต์คำตอบเกี่ยวกับความเลวร้ายของมัน คำถามนี้เกี่ยวกับปรัชญาเบื้องหลังการละทิ้งพฤติกรรมที่เปิดกว้างสำหรับการใช้งานคอมไพเลอร์ ฉันอ่านโพสต์บล็อกที่ยอดเยี่ยมที่ระบุว่าประสิทธิภาพเป็นเหตุผลหลัก ฉันสงสัยว่าการทำงานเป็นเพียงเกณฑ์ในการอนุญาตหรือมีปัจจัยอื่น ๆ ที่มีอิทธิพลต่อการตัดสินใจที่จะเปิดโอกาสให้คอมไพเลอร์ใช้งานได้หรือไม่? หากคุณมีตัวอย่างใด ๆ ที่จะกล่าวถึงพฤติกรรมที่ไม่ได้กำหนดไว้อย่างใดอย่างหนึ่งให้พื้นที่เพียงพอสำหรับคอมไพเลอร์เพื่อเพิ่มประสิทธิภาพโปรดแสดงรายการเหล่านั้น หากคุณทราบถึงปัจจัยอื่น ๆ นอกเหนือจากประสิทธิภาพโปรดกลับคำตอบของคุณพร้อมรายละเอียดที่เพียงพอ หากคุณไม่เข้าใจคำถามหรือไม่มีหลักฐาน / แหล่งข้อมูลเพียงพอที่จะตอบคำถามของคุณโปรดอย่าโพสต์คำตอบที่คาดเดาอย่างกว้าง ๆ

11
เหตุใด C ++ จึงมี 'พฤติกรรมที่ไม่ได้กำหนด' (UB) และภาษาอื่น ๆ เช่น C # หรือ Java ไม่
โพสต์สแต็คโอเวอร์โฟลว์นี้แสดงรายการสถานการณ์ที่ค่อนข้างครอบคลุมซึ่งข้อกำหนดภาษา C / C ++ ประกาศว่าเป็น 'พฤติกรรมที่ไม่ได้กำหนด' อย่างไรก็ตามฉันต้องการเข้าใจว่าทำไมภาษาสมัยใหม่อื่น ๆ เช่น C # หรือ Java ไม่มีแนวคิดของ 'พฤติกรรมที่ไม่ได้กำหนด' มันหมายความว่าผู้ออกแบบคอมไพเลอร์สามารถควบคุมสถานการณ์ที่เป็นไปได้ทั้งหมด (C # และ Java) หรือไม่ (C และ C ++)?

10
อะไรที่ทำให้นักพัฒนา C อยากรู้อยากเห็นถ้า "i ++ == ++ i"? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เพียงสังเกตแบบสุ่มดูเหมือนว่าใน StackOverflow.com มีคำถามเกี่ยวกับว่า "++ i == i ++" คำถามนั้นถูกถามตลอดเวลา แต่ฉันคิดว่าฉันเห็นมันถามประมาณ 6 หรือ 7 ครั้งใน 2 เดือนที่ผ่านมา ฉันแค่สงสัยว่าทำไมนักพัฒนา C ถึงสนใจ? มีแนวคิด / คำถามเดียวกันสำหรับ C # และ Java devs เช่นกัน แต่ฉันคิดว่าฉันเห็นคำถามที่เกี่ยวข้องกับ C # เพียงรายการเดียว เป็นเพราะตัวอย่างมากมายใช้ ++ i เป็นเพราะมีหนังสือหรือแบบฝึกหัดยอดนิยมบ้างไหม? เป็นเพราะผู้พัฒนา C รักที่จะยัดเยียดให้มากที่สุดเท่าที่จะทำได้ในบรรทัดเดียวสำหรับ 'ประสิทธิภาพ' / 'ประสิทธิภาพ' และดังนั้นจึงพบโครงสร้าง …

5
พฤติกรรมที่ไม่ได้กำหนดใน Java
ฉันอ่านคำถามนี้เกี่ยวกับ SOที่กล่าวถึงพฤติกรรมที่ไม่ได้กำหนดทั่วไปใน C ++ และฉันสงสัยว่า: Java มีพฤติกรรมที่ไม่ได้กำหนดหรือไม่ หากเป็นเช่นนั้นแล้วสาเหตุทั่วไปของพฤติกรรมที่ไม่ได้กำหนดใน Java คืออะไร ถ้าไม่เช่นนั้นคุณสมบัติใดของ Java ที่ทำให้ปราศจากพฤติกรรมดังกล่าวและเพราะเหตุใด C และ C ++ รุ่นล่าสุดจึงไม่ถูกนำไปใช้กับคุณสมบัติเหล่านี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.