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

C เป็นภาษาโปรแกรมทั่วไปที่ใช้สำหรับการเขียนโปรแกรมระบบ (ระบบปฏิบัติการและฝังตัว), ห้องสมุด, เกมและข้ามแพลตฟอร์ม แท็กนี้ควรใช้กับคำถามทั่วไปที่เกี่ยวข้องกับภาษา C ตามที่กำหนดไว้ในมาตรฐาน ISO 9899 (เวอร์ชันล่าสุด 9899: 2018 เว้นแต่ระบุไว้เป็นอย่างอื่น - นอกจากนี้ยังติดแท็กคำขอเฉพาะรุ่นด้วย c89, c99, c11 ฯลฯ ) C แตกต่างจาก C ++ และไม่ควรใช้ร่วมกับแท็ก C ++ หากไม่มีเหตุผล

6
จะส่งผ่านนิยามมาโครจากอาร์กิวเมนต์บรรทัดคำสั่ง“ make” (-D) ไปยังซอร์สโค้ด C ได้อย่างไร
ฉันมักจะส่งผ่านคำจำกัดความของมาโครจาก "make command line" ไปยัง "makefile" โดยใช้ตัวเลือก: -Dname = value คำจำกัดความสามารถเข้าถึงได้ภายใน makefile ฉันยังส่งผ่านนิยามมาโครจาก "makefile" ไปยัง "ซอร์สโค้ด" โดยใช้ตัวเลือกคอมไพเลอร์ที่คล้ายกัน: -Dname = value (รองรับในคอมไพเลอร์จำนวนมาก) คำจำกัดความนี้สามารถเข้าถึงได้ในซอร์สโค้ด สิ่งที่ฉันต้องการในตอนนี้คืออนุญาตให้ผู้ใช้ makefile ของฉันสามารถส่งผ่านนิยามมาโครโดยพลการจาก "make.exe commandline" ไปยัง "source code" ได้ทันทีโดยไม่ต้องเปลี่ยนแปลงอะไรใน makefile เพื่อให้ผู้ใช้สามารถพิมพ์: make -f mymakefile.mk -SOMEOPTION var = 5 จากนั้นรหัส main.c โดยตรงสามารถดู var: int main() { int i = …
107 c  macros  makefile 

5
ตัวเลขที่ใช้สัญกรณ์ 0x หมายถึงอะไร?
อะไร0xคำนำหน้าบนตัวเลขหมายความว่าอย่างไร const int shared_segment_size = 0x6400; มันมาจากโปรแกรม C ฉันจำไม่ได้ว่ามันมีค่าเท่าไหร่และโดยเฉพาะความxหมายของตัวอักษร
107 c  integer  hex  notation 

3
ความแตกต่างระหว่าง int32, int, int32_t, int8 และ int8_t
ฉันเจอประเภทข้อมูลint32_tในโปรแกรม C เมื่อเร็ว ๆ นี้ ฉันรู้ว่าจะเก็บ 32 บิต แต่ทำไม่ได้intและint32ทำเช่นเดียวกันหรือไม่ นอกจากนี้ฉันต้องการใช้charในโปรแกรม ใช้int8_tแทนได้ไหม? อะไรคือความแตกต่าง? สรุป: int32, int, int32_t, int8 และ int8_t ใน C ต่างกันอย่างไร
107 c  int  declaration 

4
ซอร์สโค้ดนี้กำลังเปิดใช้งานสตริงใน C มันทำได้อย่างไร?
ฉันกำลังอ่านโค้ดอีมูเลเตอร์บางอย่างและฉันได้ตอบโต้สิ่งที่แปลกอย่างแท้จริง: switch (reg){ case 'eax': /* and so on*/ } เป็นไปได้อย่างไร? ฉันคิดว่าคุณทำได้เฉพาะswitchในประเภทอินทิกรัล มีกลอุบายมาโครบางอย่างเกิดขึ้นหรือไม่?

3
ความสำคัญของการเริ่มต้นอาร์เรย์ทิศทางด้านล่างด้วยค่าที่กำหนดเมื่อพัฒนาโปรแกรมหมากรุกคืออะไร?
ฉันยังใหม่กับการเขียนโปรแกรมเชิงแข่งขันและฉันสังเกตเห็นบ่อยครั้งว่า coders ที่ยอดเยี่ยมหลายตัวมีสี่บรรทัดนี้ในโค้ด (โดยเฉพาะอย่างยิ่งในส่วนที่เกี่ยวข้องกับอาร์เรย์): int di[] = { 1, -1, 0, 0, 1, -1, 1, -1 }; int dj[] = { 0, 0, 1, -1, 1, -1, -1, 1 }; int diK[] = { -2, -2, -1, 1, 2, 2, 1, -1 }; int djK[] = { -1, 1, 2, …
106 c++  c  chess 

3
ความแตกต่างระหว่าง CC, gcc และ g ++?
อะไรคือความแตกต่างระหว่าง 3 คอมไพเลอร์ CC, gcc, g ++ เมื่อคอมไพล์โค้ด C และ C ++ ในแง่ของการสร้างโค้ดแอสเซมบลีไลบรารีที่พร้อมใช้งานคุณสมบัติภาษา ฯลฯ
106 c++  c  gcc  compilation 

5
Linux: มีการอ่านหรือรับข้อมูลจากซ็อกเก็ตที่หมดเวลาหรือไม่?
ฉันจะพยายามอ่านข้อมูลจากซ็อกเก็ตแบบหมดเวลาได้อย่างไร ฉันรู้ว่าเลือกเลือกแบบสำรวจมีฟิลด์หมดเวลา แต่การใช้พวกเขาปิดใช้งาน "tcp fast-path" ใน tcp reno stack ความคิดเดียวที่ฉันมีคือใช้ recv (fd, ... , MSG_DONTWAIT) ในวง
106 c  linux  sockets  tcp 

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



12
สร้างเซิร์ฟเวอร์ HTTP อย่างง่ายใน C [ปิด]
มันยากที่จะบอกว่ากำลังถามอะไรที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือมีวาทศิลป์และไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการสร้างเซิร์ฟเวอร์ HTTP อย่างง่ายใน C มีคำแนะนำหรือไม่ ลิงค์? ตัวอย่าง?
105 c  httpserver 

8
opengl: glFlush () กับ glFinish ()
ฉันมีปัญหาในการแยกแยะความแตกต่างระหว่างการโทรglFlush()และglFinish(). เอกสารกล่าวว่าglFlush()และglFinish()จะผลักดันการดำเนินการที่บัฟเฟอร์ทั้งหมดไปยัง OpenGL เพื่อให้มั่นใจได้ว่าจะถูกดำเนินการทั้งหมดความแตกต่างจะglFlush()ส่งกลับทันทีที่glFinish()บล็อกจนกว่าการดำเนินการทั้งหมดจะเสร็จสมบูรณ์ เมื่ออ่านคำจำกัดความแล้วฉันคิดว่าถ้าฉันจะใช้glFlush()ฉันอาจประสบปัญหาในการส่งการดำเนินการไปยัง OpenGL มากกว่าที่จะดำเนินการได้ ดังนั้นเพื่อที่จะลองฉันสลับglFinish()a glFlush()และแท้จริงของฉันและดูเถิดโปรแกรมของฉันทำงาน (เท่าที่ฉันสามารถบอกได้) เหมือนกันทุกประการ อัตราเฟรมการใช้ทรัพยากรทุกอย่างเหมือนเดิม ดังนั้นฉันจึงสงสัยว่าการโทรทั้งสองสายมีความแตกต่างกันมากหรือไม่หรือถ้ารหัสของฉันทำให้การโทรไม่แตกต่างกัน หรือควรใช้ที่ไหนเทียบกับอีกอัน ฉันยังคิดว่า OpenGL จะมีการโทรบางอย่างต้องการglIsDone()ตรวจสอบว่าคำสั่งบัฟเฟอร์ทั้งหมดสำหรับ a glFlush()นั้นสมบูรณ์หรือไม่ (ดังนั้นจึงไม่ส่งการดำเนินการไปยัง OpenGL เร็วกว่าที่สามารถเรียกใช้งานได้) แต่ฉันไม่พบฟังก์ชันดังกล่าว . รหัสของฉันคือลูปเกมทั่วไป: while (running) { process_stuff(); render_stuff(); }
105 c++  c  opengl  graphics 

9
คำหลัก C auto ใช้ที่ไหน?
ในสมัยเรียนมหาวิทยาลัยฉันอ่านเกี่ยวกับautoคีย์เวิร์ดและในบางครั้งฉันก็ลืมไปว่ามันคืออะไร ถูกกำหนดให้เป็น: กำหนดตัวแปรโลคัลว่ามีอายุการใช้งานโลคัล ไม่เคยพบว่ามีการใช้งานที่ไหนมีการใช้งานจริงหรือไม่และถ้าเป็นเช่นนั้นจะใช้ที่ไหนและในกรณีใด
105 c 


7
จุลภาคในมาโคร C / C ++
สมมติว่าเรามีมาโครแบบนี้ #define FOO(type,name) type name ซึ่งเราสามารถใช้เช่น FOO(int, int_var); แต่ไม่ง่ายอย่างนั้นเสมอไป: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 แน่นอนเราทำได้: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK ซึ่งไม่ถูกหลักสรีรศาสตร์ ต้องจัดการกับความเข้ากันไม่ได้ของประเภทบวก มีความคิดอย่างไรในการแก้ไขปัญหานี้ด้วยมาโคร
104 c++  c  macros  c-preprocessor 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.