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

16
#ifdef การแทนที่ในภาษา Swift
ใน C / C ++ / Objective C คุณสามารถกำหนดแมโครโดยใช้ตัวประมวลผลล่วงหน้าคอมไพเลอร์ ยิ่งกว่านั้นคุณสามารถรวม / แยกบางส่วนของรหัสโดยใช้ตัวประมวลผลล่วงหน้าคอมไพเลอร์ #ifdef DEBUG // Debug-only code #endif มีวิธีแก้ไขปัญหาที่คล้ายคลึงกันใน Swift หรือไม่

8
#if DEBUG vs. Conditional (“ DEBUG”)
สิ่งที่ดีกว่าใช้และทำไมในโครงการขนาดใหญ่: #if DEBUG public void SetPrivateValue(int value) { ... } #endif หรือ [System.Diagnostics.Conditional("DEBUG")] public void SetPrivateValue(int value) { ... }

9
Xcode / iOS: วิธีการตรวจสอบว่ารหัสกำลังทำงานอยู่ในการสร้าง DEBUG / RELEASE
ฉันกำลังสร้างแอพที่ประมวลผลข้อมูลบัตรเครดิตที่ละเอียดอ่อน หากรหัสของฉันทำงานในโหมดแก้ไขข้อบกพร่องฉันต้องการบันทึกข้อมูลนี้ไปยังคอนโซลและทำให้บางไฟล์ทิ้ง อย่างไรก็ตามในรุ่น appstore สุดท้าย (เช่นเมื่อมันทำงานในโหมดการเปิดตัว) มันเป็นสิ่งสำคัญทั้งหมดนี้ถูกปิดใช้งาน (อันตรายด้านความปลอดภัย)! ฉันจะพยายามตอบคำถามของฉันให้ดีที่สุด ดังนั้นคำถามจะกลายเป็น'วิธีแก้ปัญหานี้เป็นเส้นทางที่ถูกต้องหรือดีที่สุดที่จะทำหรือไม่' // add `IS_DEBUG=1` to your debug build preprocessor settings #if( IS_DEBUG ) #define MYLog(args...) NSLog(args) #else #define MYLog(args...) #endif

9
มีดโกนมุมมองเครื่องยนต์วิธีการป้อน preprocessor (#if debug)
ฉันกำลังเขียนหน้ามีดโกนแรกของฉันในวันนี้ไม่สามารถหาวิธีเข้าได้ #if debug #else #endif ฉันจะป้อนตัวประมวลผลล่วงหน้าในมีดโกนได้อย่างไร

30
มาโครในโลกแห่งความจริงที่เลวร้ายที่สุดที่คุณเคยเจอเจอเคยทำมาก่อนคืออะไร?
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ มาโครในโลกแห่งความเป็นจริงที่เลวร้ายที่สุด คือการละเมิดที่คุณเคยเจอมาก่อน (โปรดอย่าตอบคำถาม IOCCC * haha ​​*) โปรดเพิ่มตัวอย่างสั้น ๆ หรือเรื่องราวถ้ามันสนุกจริงๆ เป้าหมายคือการสอนอะไรบางอย่างแทนที่จะบอกผู้คนเสมอว่า "ไม่เคยใช้มาโคร" ps: ฉันเคยใช้มาโครมาก่อน ... แต่โดยปกติฉันจะกำจัดมันในที่สุดเมื่อฉันมีวิธีแก้ปัญหา "ของจริง" (แม้ว่าวิธีการแก้ปัญหาจริงจะถูกแทรกเข้าไป โบนัส:ยกตัวอย่างว่าแมโครนั้นดีกว่าโซลูชันที่ไม่ใช่มาโครจริงๆ คำถามที่เกี่ยวข้อง: มาโคร C ++ จะมีประโยชน์เมื่อใด
176 c++  c  macros  preprocessor 

30
จะแปลงตัวแปรประเภท enum เป็นสตริงได้อย่างไร?
จะทำให้ printf แสดงค่าของตัวแปรที่เป็น enum ได้อย่างไร? ตัวอย่างเช่น: typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; และสิ่งที่ฉันต้องการก็คือ printenum(OS_type, "My OS is %s", myOS); ซึ่งต้องแสดงสตริง "Linux" ไม่ใช่จำนวนเต็ม ฉันคิดว่าก่อนอื่นฉันต้องสร้างอาร์เรย์ของสตริงที่มีดัชนีค่า แต่ฉันไม่รู้ว่านั่นเป็นวิธีที่สวยงามที่สุดที่จะทำหรือไม่ เป็นไปได้หรือไม่
128 c++  c  preprocessor  ansi-c 

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

4
Swift: จะใช้ PREPROCESSOR Flags (เช่น "#if DEBUG`) เพื่อใช้คีย์ API ได้อย่างไร
ในObjective-Cบางครั้งการใช้ค่าคงที่สตริงคงที่เพื่อกำหนดคีย์ API ทางเลือก (ตัวอย่างเช่นเพื่อแยกความแตกต่างระหว่างคีย์ RELEASE และ DEBUG สำหรับแพ็คเกจการวิเคราะห์เช่น MixPanel, Flurry หรือ Crashlytics): #if DEBUG static NSString *const API_KEY = @"KEY_A"; #else static NSString *const API_KEY = @"KEY_B"; #endif แล้ว ... [Analytics startSession:API_KEY]; สิ่งนี้แปลเป็น Swift อย่างไรเนื่องจากคอมไพเลอร์ Swift ไม่ใช้ตัวประมวลผลล่วงหน้าอีกต่อไป

5
โค้ด "แก้จุดบกพร่องเท่านั้น" ที่ควรทำงานเมื่อ "เปิด" เท่านั้น
ฉันต้องการเพิ่มโค้ด C # "debug only" บางส่วนที่ทำงานเฉพาะในกรณีที่ผู้ทำการดีบักร้องขอ ใน C ++ ฉันเคยทำสิ่งที่คล้ายกับสิ่งต่อไปนี้: void foo() { // ... #ifdef DEBUG static bool s_bDoDebugOnlyCode = false; if (s_bDoDebugOnlyCode) { // Debug only code here gets executed when the person debugging // manually sets the bool above to true. It then stays for the rest …

17
Xcode 4 ไม่สามารถค้นหาไฟล์ส่วนหัวสาธารณะจากการพึ่งพาไลบรารีแบบคงที่
ชื่อเรื่องอื่นเพื่อช่วยในการค้นหา Xcode ไม่พบส่วนหัว ไม่มี. h ใน Xcode ไม่พบไฟล์ Xcode .h ไม่พบไฟล์ปัญหาคำศัพท์หรือตัวประมวลผลล่วงหน้า ฉันกำลังทำโปรเจ็กต์แอปพลิเคชัน iOS ที่มาจาก Xcode 3 ตอนนี้ฉันได้ย้ายไปที่ Xcode 4 โปรเจ็กต์ของฉันสร้างไลบรารีแบบคงที่จำนวนหนึ่ง ไลบรารีแบบคงที่เหล่านั้นยังประกาศส่วนหัวสาธารณะและส่วนหัวเหล่านั้นจะถูกใช้โดยรหัสแอปพลิเคชัน ใน Xcode 3.x ส่วนหัวจะถูกคัดลอก (เป็นเฟสการสร้าง) ไปที่public headers directoryจากนั้นในโครงการแอปพลิเคชันpublic headers directoryจะถูกเพิ่มลงในheaders search list. ภายใต้ Xcode 4 ~/Library/Developer/Xcode/DerivedData/my-projectสร้างไดเรกทอรีจะถูกย้ายไป ปัญหาคือฉันจะอ้างอิงตำแหน่งใหม่นี้ในการตั้งค่าการค้นหาส่วนหัวได้อย่างไร ดูเหมือนว่า: public headers directoryสัมพันธ์กับDerivedDataไดเร็กทอรี แต่ headers search ไดเร็กทอรีสัมพันธ์กับอย่างอื่น (อาจเป็นที่ตั้งโครงการ) ฉันจะตั้งค่าเป้าหมายไลบรารีแบบคงที่สำหรับการพัฒนา iOS ใน …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.