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

7
เครื่องหมาย #pragma มีความสำคัญอย่างไร ทำไมเราต้องมีเครื่องหมาย #pragma
จุดประสงค์ของ#pragmaเครื่องหมายใน Xcode คืออะไร? ตำแหน่งของพวกเขาใน.mไฟล์มีความสำคัญหรือไม่? ควร#pragmaมาก่อนคนอื่น ๆ ทั้งหมดหรือไม่ พวกเขาจะต้องมีอยู่? สามารถเพิ่มเครื่องหมายใหม่ได้หรือไม่? ทำไมพวกเขาจะเป็นอย่างไร สาเหตุอะไร มีอันตรายในการลบเครื่องหมายหรือไม่? ใครอยากจะ?

9
วิธีปิดการใช้งานคำเตือนของ GCC สำหรับรหัสสองสามบรรทัด
ใน Visual C ++ #pragma warning (disable: ...)มันเป็นไปได้ที่จะใช้งาน นอกจากนี้ผมพบว่าใน GCC คุณสามารถแทนที่ต่อธงคอมไพเลอร์ไฟล์ ฉันจะทำสิ่งนี้สำหรับ "บรรทัดถัดไป" หรือด้วยความหมายของพุช / ป๊อปรอบ ๆ พื้นที่ของรหัสโดยใช้ GCC ได้อย่างไร


8
มีคำใบ้คอมไพเลอร์สำหรับ GCC เพื่อบังคับให้การทำนายสาขาเป็นไปในทางที่แน่นอนหรือไม่?
สำหรับสถาปัตยกรรม Intel มีวิธีใดที่จะสั่งให้คอมไพเลอร์ GCC สร้างโค้ดที่บังคับให้การทำนายสาขาเป็นวิธีเฉพาะในโค้ดของฉันเสมอ ฮาร์ดแวร์ของ Intel รองรับสิ่งนี้หรือไม่ แล้วคอมไพเลอร์หรือฮาร์ดแวร์อื่น ๆ ล่ะ? ฉันจะใช้สิ่งนี้ในรหัส C ++ ซึ่งฉันรู้ว่ากรณีที่ฉันต้องการทำงานอย่างรวดเร็วและไม่สนใจเกี่ยวกับการชะลอตัวเมื่อสาขาอื่นต้องดำเนินการแม้ว่าสาขานั้นจะเพิ่งเข้ามาเมื่อไม่นานมานี้ for (;;) { if (normal) { // How to tell compiler to always branch predict true value? doSomethingNormal(); } else { exceptionalCase(); } } ตามคำถามสำหรับ Evdzhan Mustafa คำใบ้สามารถระบุคำใบ้เป็นครั้งแรกที่โปรเซสเซอร์พบคำสั่งการทำนายสาขาที่ตามมาทั้งหมดทำงานได้ตามปกติหรือไม่


10
ปิดใช้งานข้อผิดพลาดคำเตือนเดียว
มีวิธีปิดการใช้งานคำเตือนเพียงบรรทัดเดียวในไฟล์ cpp ด้วย visual studio หรือไม่? ตัวอย่างเช่นหากฉันจับข้อยกเว้นและไม่ได้จัดการฉันได้รับข้อผิดพลาด 4101 (ตัวแปรภายในเครื่องที่ไม่ได้อ้างอิง) มีวิธีละเว้นสิ่งนี้ในฟังก์ชันนั้นหรือไม่ แต่รายงานในหน่วยคอมไพล์หรือไม่ ในขณะนี้ฉันวางไว้#pragma warning (disable : 4101)ที่ด้านบนสุดของไฟล์ แต่เห็นได้ชัดว่ามันปิดสำหรับทั้งหน่วย

4
วิธีปิดเสียงเตือนอย่างรวดเร็ว
ฉันมีโค้ดที่สร้างคำเตือนมากมาย (เลิกใช้ API) ใช้เสียงดัง * ฉันทำได้ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" ... #pragma clang diagnostic pop อย่างไรก็ตามสิ่งนี้ไม่ได้ผลอย่างรวดเร็ว จะทำอย่างไรให้รวดเร็ว? หมายเหตุ: ฉันไม่ต้องการปิดการใช้งานคำเตือนทั่วโลกหรือแม้แต่ไฟล์ที่กว้าง แต่เพียงปิดการใช้งานคำเตือนเฉพาะในส่วนเฉพาะของซอร์สโค้ดของฉัน แก้ไข: ฉันดูเหมือนว่าบันทึกย่อของฉันไม่ชัดเจนพอ: ฉันไม่ต้องการการรวบรวมแบบมีเงื่อนไข (ซึ่งเป็นคำตอบที่เสนอสำหรับรายการที่ซ้ำกัน) ฉันแค่ต้องการปิดเสียงเตือนโดยไม่ต้องใช้ API ใหม่
104 swift  pragma  swift2 

4
Pragma ในกำหนดมาโคร
มีวิธีบางอย่างในการฝังคำสั่ง pragma ในมาโครด้วยคำสั่งอื่น ๆ หรือไม่? ฉันพยายามที่จะบรรลุสิ่งที่ต้องการ: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type ฉันโอเคกับโซลูชันการเพิ่มประสิทธิภาพ (บันทึกสำหรับคลื่น) ถ้ามีอยู่

4
ปิดการใช้งานคำเตือน GCC เฉพาะบางส่วนของหน่วยการแปลหรือไม่
GCC ที่ใกล้เคียงที่สุดเทียบเท่ากับรหัสตัวประมวลผลล่วงหน้า MSVC นี้คืออะไร #pragma warning( push ) // Save the current warning state. #pragma warning( disable : 4723 ) // C4723: potential divide by 0 // Code which would generate warning 4723. #pragma warning( pop ) // Restore warnings to previous state. เรามีโค้ดในส่วนหัวที่รวมอยู่ทั่วไปซึ่งเราไม่ต้องการสร้างคำเตือนที่เฉพาะเจาะจง อย่างไรก็ตามเราต้องการให้ไฟล์ที่มีส่วนหัวเหล่านั้นสร้างคำเตือนนั้นต่อไป (หากโปรเจ็กต์เปิดใช้งานคำเตือนนั้น)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.