คำถามที่ติดแท็ก 'c-preprocessor'

ขั้นตอนของการเขียนโปรแกรมภาษามาโคร C และ C ++ แท็กนี้ยังสามารถใช้สำหรับคำถามเกี่ยวกับคอมไพเลอร์ / ภาษาอื่น ๆ ที่ได้มาจากหรือมีฟังก์ชั่นที่เหมือนกันเช่น #directives ใน Objective-C หรือ C #
32
คำตอบ

อะไรคือความแตกต่างระหว่าง #include <filename> และ #include "filename"

ในการเขียนโปรแกรมภาษา C และ C ++ ความแตกต่างระหว่างการใช้วงเล็บมุมและการใช้คำพูดในคำสั่งรวมดังนี้? #include <filename> #include "filename"
เริ่ม วันที่ 22 สิงหาคม '08 เวลา 4:40 น
5
คำตอบ

ทำไมตัวประมวลผลล่วงหน้า C ตีความคำว่า "linux" เป็นค่าคงที่ "1"

ทำไมตัวประมวลผลล่วงหน้า C ใน GCC ตีความคำว่า linux (ตัวอักษรตัวเล็ก) เป็นค่าคงที่ 1 test.c: #include <stdio.h> int main (void) {int linux = 5; กลับ 0 } Result $ gcc -E test.c (หยุดหลังจากช่วงก่อนเวที ...
ตั้ง 06 ต.ค. '13 เวลา 19:09 น
11
คำตอบ

เหตุใดจึงใช้คำแนะนำ do-while และ if-else ที่ไม่มีความหมายในแมโครอย่างเห็นได้ชัด

ในมาโคร C / C ++ หลายรุ่นฉันเห็นมาโครโค้ดที่ห่อหุ้มในสิ่งที่ดูเหมือนจะไม่มีความหมายในขณะที่วนซ้ำ นี่คือตัวอย่างบางส่วน #define FOO (X) ทำ {f (X); g (x); } ในขณะที่ (0) #define FOO (X) ถ้า (1) {f (X); g (x); } อื่นฉันไม่เห็นสิ่งที่ทำในขณะที่ทำ ทำไมข ...
ตั้ง 30 กันยายน '08 เวลา 20:36 น
2
คำตอบ

เหตุใดไฟล์ C ทั้งหมดที่เขียนโดยครูของฉันเริ่มต้นด้วย #

เหตุใดไฟล์ C ทั้งหมดที่เขียนโดยครูของฉันเริ่มต้นด้วย # ฉันดูบันทึกหลักสูตรและไฟล์ต้นฉบับ C แต่ละไฟล์เริ่มต้นด้วย # เดียวในบรรทัดแรกของโปรแกรม จากนั้นช่องว่างจะปรากฏขึ้นและติดตามอีกครั้ง ...
ตั้ง เมื่อวันที่ 11 สิงหาคม '17 เวลา 10:17 น
3
คำตอบ

เหตุใดจึงใช้ #ifndef และ #define ในไฟล์ส่วนหัว C ++

ฉันเห็นรหัสนี้ตามปกติที่จุดเริ่มต้นของไฟล์ส่วนหัว: #ifndef HEADERFILE_H #define HEADERFILE_H และในตอนท้ายของไฟล์ #endif จุดประสงค์ของสิ่งนี้คืออะไร
ตั้ง 31 ตุลาคม '09 เวลา 13:06 น
4
คำตอบ

การรวม C ++ และ C - #ifdef __cplusplus ทำงานอย่างไร

ฉันกำลังทำงานในโครงการที่มีรหัส C ที่ล้าสมัยจำนวนมากเราเริ่มเขียนใน C ++ ซึ่งหมายถึงในที่สุดการแปลงรหัสที่ล้าสมัย ฉันสับสนเล็กน้อยเกี่ยวกับการโต้ตอบของ C และ C ++ ฉันเข้าใจว่าการห่อโค้ด C ด้วย extern "C ...
ตั้ง เมื่อวันที่ 24 กันยายน '10 เวลา 20:03 น
3
คำตอบ

วิธีตรวจสอบ Mac OS X, iOS, Linux, Windows ใน C preprocessor ได้อย่างแม่นยำ

หากมีรหัส C / C ++ ข้ามแพลตฟอร์มใด ๆ ที่จำเป็นต้องรวบรวมใน Mac OS X, iOS, Linux, Windows ฉันจะตรวจสอบได้อย่างแม่นยำในระหว่างกระบวนการพรีโปรเซสเซอร์หรือไม่
ตั้ง เมื่อวันที่ 7 พฤษภาคม '11 เวลา 11:37 น
3
คำตอบ

กำหนดแมโครตัวประมวลผลล่วงหน้าผ่าน cmake

วิธีกำหนดตัวแปรตัวประมวลผลล่วงหน้าผ่าน cmake อย่างไร รหัสที่เทียบเท่าจะเป็น #define foo
ตั้ง 26 มกราคม '12 เวลา 14:35 น
6
คำตอบ

ดัมพ์ตัวประมวลผลก่อน GCC กำหนด

มีวิธีสำหรับ gcc / g ++ เพื่อลบตัวประมวลผลล่วงหน้าออกจากบรรทัดคำสั่งหรือไม่ ฉันหมายถึงสิ่งต่าง ๆ เช่น __GNUC__, __STDC__ เป็นต้น
ตั้ง 08 ก.พ. '10 เวลา 22:40 น
12
คำตอบ

ต่ำสุดและสูงสุดเป็น c

มีการกำหนด MIN และ MAX ใน C อยู่ที่ไหน เป็นวิธีที่ดีที่สุดในการใช้พวกเขาเป็นสากลและปลอดภัยที่สุดเท่าที่จะทำได้? (เป็นการดีกว่าที่จะใช้คอมไพเลอร์ส่วนขยาย / อินไลน์สำหรับคอมไพเลอร์หลัก)
ตั้ง 09 aug. '10 เวลา 7:49 น
10
คำตอบ

ฉันจะดูไฟล์ต้นฉบับ C / C ++ หลังจากประมวลผลล่วงหน้าใน Visual Studio ได้อย่างไร

สมมติว่าฉันมีไฟล์ต้นฉบับที่มีคำสั่ง preprocessor มากมาย ฉันสามารถดูสิ่งที่ดูเหมือนว่าหลังจาก preprocessor ไม่ว่างกับมันได้หรือไม่
เริ่ม วันที่ 10 พ.ย. '08 เวลา 10:11 น
12
คำตอบ

C # กำหนดแมโครสำหรับการพิมพ์ debug

ความพยายามในการสร้างแมโครที่สามารถใช้สำหรับข้อความการตรวจแก้จุดบกพร่องการพิมพ์เมื่อมีกำหนด DEBUG ตัวอย่างรหัสหลอกต่อไปนี้: #define DEBUG 1 #define debug_print (args ... ) ถ้า (DEBUG) fprintf (stderr, args) แมโคร?
ตั้ง 29 ต.ค. '09 เวลา 19:17 น
12
คำตอบ

คอมไพเลอร์คำเตือน "ไม่มีบรรทัดใหม่ที่ท้ายไฟล์"

อะไรคือสาเหตุของคำเตือนต่อไปนี้ในคอมไพเลอร์ C ++ บางตัว? ไม่มีบรรทัดที่ท้ายไฟล์ทำไมฉันต้องมีบรรทัดว่างที่ท้ายไฟล์ต้นฉบับ / ส่วนหัว?
16 กันยายน '08 เวลา 16:38 น
5
คำตอบ

วิธีสร้างมาโครแบบตัวแปร (จำนวนตัวแปรที่มีข้อโต้แย้ง)

ฉันต้องการเขียนมาโครใน C ซึ่งใช้พารามิเตอร์จำนวนใดไม่ใช่จำนวนเฉพาะตัวอย่าง: # define macro (X) something_complicated (อะไรก็ตาม (X)) โดยที่ X เป็นจำนวนพารามิเตอร์ใด ๆ ที่ฉันต้องการสิ่งนี้เพราะสิ่งที่มากเกินไป ...
กำหนด วันที่ 25 มีนาคม 09: 5:08
38
คำตอบ

มาโคร C ++ มีประโยชน์เมื่อใด

ตัวประมวลผลล่วงหน้า C กลัวและหลีกเลี่ยงชุมชน C ++ อย่างสมเหตุสมผล ฟังก์ชันค่าคงที่และรูปแบบในตัวโดยทั่วไปจะเป็นทางเลือกที่ปลอดภัยและดีกว่าสำหรับ #define แมโครต่อไปนี้: #define SUCCEEDED (ชม.) ((HRESULT) (ชม.)> = 0) ไม่ ...
เริ่ม วันที่ 18 กันยายน '08 เวลา 22:46 น