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

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

8
รับขนาดบรรทัดแคชโดยทางโปรแกรมหรือไม่
ยินดีต้อนรับทุกแพลตฟอร์มโปรดระบุแพลตฟอร์มสำหรับคำตอบของคุณ คำถามที่คล้ายกัน: วิธีการรับขนาดหน้าแคช CPU โดยทางโปรแกรมโดยทางโปรแกรม

30
เหตุใดจึงถือว่าการปฏิบัติที่ไม่ดีในการละเว้นการจัดฟันแบบหยิก [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ทำไมทุกคนบอกให้ฉันเขียนโค้ดแบบนี้เป็นการปฏิบัติที่ไม่ดี? if (foo) Bar(); //or for(int i = 0 i < count; i++) Bar(i); อาร์กิวเมนต์ที่ใหญ่ที่สุดของฉันสำหรับการละเว้นวงเล็บปีกกาคือบางครั้งมันอาจเป็นสองเท่าของบรรทัดกับพวกเขา ตัวอย่างเช่นต่อไปนี้เป็นโค้ดบางส่วนที่ใช้ระบายสีเอฟเฟกต์แสงสำหรับฉลากใน C # using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor))) { for (int x = 0; x <= GlowAmount; x++) { for (int y = 0; y …
177 java  c#  c++  c  coding-style 



8
ตัวอย่าง / กวดวิชา Mutex? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ฉันใหม่กับมัลติเธรดและพยายามที่จะเข้าใจวิธีการทำงานของ mutex ทำ Googling มาก แต่ก็ยังมีข้อสงสัยว่ามันทำงานอย่างไรเพราะฉันสร้างโปรแกรมของตัวเองซึ่งการล็อคไม่ทำงาน หนึ่งในไวยากรณ์ที่ไม่เข้าใจง่ายของ mutex คือpthread_mutex_lock( &mutex1 );มันดูเหมือนว่า mutex กำลังถูกล็อคเมื่อสิ่งที่ฉันต้องการล็อคจริงๆคือตัวแปรอื่น ๆ ไวยากรณ์นี้หมายความว่าการล็อก mutex ล็อคขอบเขตของรหัสจนกว่า mutex จะถูกปลดล็อกหรือไม่? จากนั้นเธรดจะรู้ได้อย่างไรว่าพื้นที่ถูกล็อก [ อัพเดท: กระทู้รู้ว่าพื้นที่ถูกล็อคโดยการ ฟันดาบของหน่วยความจำ ] และปรากฏการณ์เช่นนี้ไม่ควรถูกเรียกว่าส่วนวิกฤต [ ปรับปรุง: วัตถุส่วนที่สำคัญมีอยู่ใน Windows เท่านั้นโดยที่วัตถุนั้นเร็วกว่า mutexes และสามารถมองเห็นได้เฉพาะเธรดที่ใช้งานเท่านั้น มิฉะนั้นส่วนสำคัญจะอ้างถึงพื้นที่ของรหัสที่ป้องกันโดย mutex ] ในระยะสั้นคุณสามารถช่วยด้วยโปรแกรมตัวอย่าง mutex ที่ง่ายที่สุดที่เป็นไปได้และคำอธิบายที่ง่ายที่สุดเกี่ยวกับตรรกะของวิธีการทำงาน ฉันแน่ใจว่านี้จะช่วยให้ความอุดมสมบูรณ์ของมือใหม่อื่น …

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


10
อะไรคือความแตกต่างระหว่าง printf () และ put () ใน C?
ฉันรู้ว่าคุณสามารถพิมพ์ด้วยและprintf() puts()ฉันยังสามารถเห็นว่าprintf()ช่วยให้คุณสามารถแก้ไขตัวแปรและทำการจัดรูปแบบได้ เป็นเพียงรุ่นดั้งเดิมputs() printf()มันควรจะใช้สำหรับทุก ๆ ที่เป็นไปได้printf()หรือไม่
176 c  string  output  printf  puts 

8
เลขคณิตของตัวชี้สำหรับตัวชี้โมฆะใน C
เมื่อมีการชี้ไปยังประเภทใดประเภทหนึ่ง (พูดint, char, float, .. ) จะเพิ่มขึ้นค่าของมันจะเพิ่มขึ้นตามขนาดของชนิดข้อมูลว่า หากvoidตัวชี้ที่ชี้ไปยังข้อมูลขนาดxเพิ่มขึ้นมันจะไปยังจุดxไบต์ข้างหน้าได้อย่างไร คอมไพเลอร์รู้ได้อย่างไรว่าจะเพิ่มxมูลค่าของตัวชี้?

6
Clang vs GCC สำหรับโครงการพัฒนา Linux ของฉัน
ฉันอยู่ในวิทยาลัยและสำหรับโครงการที่เราใช้ C. เราได้สำรวจ GCC และ Clang และ Clang ดูเหมือนจะเป็นมิตรต่อผู้ใช้มากกว่า GCC เป็นผลให้ฉันสงสัยว่าข้อดีหรือข้อเสียคือการใช้เสียงดังกราวเมื่อเทียบกับ GCC สำหรับการพัฒนาใน C และ C ++ บน Linux? ในกรณีของฉันนี้จะใช้สำหรับโปรแกรมระดับนักเรียนไม่ใช่การผลิต ถ้าฉันใช้ Clang ฉันควรดีบักด้วย GDB และใช้ GNU Make หรือใช้ดีบักเกอร์อื่นแล้วสร้างยูทิลิตี้?
175 c++  c  linux  gcc  clang 

11
เครื่องมือในการติดตาม #include การอ้างอิง [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ข้อเสนอแนะที่ดี? อินพุตจะเป็นชื่อของไฟล์ส่วนหัวและเอาต์พุตควรเป็นรายการ (ควรเป็นแผนผัง) ของไฟล์ทั้งหมดรวมถึงโดยตรงหรือโดยอ้อม
175 c++  c  header 

8
errno เป็นเธรดที่ปลอดภัยหรือไม่
ในerrno.hตัวแปรนี้มีการประกาศตามextern int errno;คำถามของฉันคือมันปลอดภัยที่จะตรวจสอบerrnoค่าหลังจากการโทรหรือใช้ perror () ในรหัสแบบมัลติเธรด นี่เป็นตัวแปรที่ปลอดภัยหรือไม่ ถ้าไม่เช่นนั้นทางเลือกคืออะไร? ฉันใช้ linux กับ gcc บนสถาปัตยกรรม x86
175 c  linux  multithreading  gcc 

7
i = อะไร (i, ++ i, 1) + 1; ทำ?
หลังจากอ่านคำตอบนี้เกี่ยวกับพฤติกรรมที่ไม่ได้กำหนดและจุดลำดับฉันได้เขียนโปรแกรมขนาดเล็ก: #include <stdio.h> int main(void) { int i = 5; i = (i, ++i, 1) + 1; printf("%d\n", i); return 0; } 2เอาท์พุทเป็น โอ้พระเจ้าฉันไม่เห็นการลดลงมา! เกิดอะไรขึ้นที่นี่ นอกจากนี้ในขณะที่รวบรวมโค้ดข้างต้นฉันได้รับคำเตือนว่า: px.c: 5: 8: คำเตือน: ตัวถูกดำเนินการทางซ้ายของนิพจน์จุลภาคไม่มีผลใด ๆ [-Wunused-value] i = (i, ++i, 1) + 1; ^ ทำไม? แต่อาจจะตอบโดยอัตโนมัติโดยคำตอบของคำถามแรกของฉัน

2
ฉันจะแปลงตัวชี้ไฟล์ (FILE * fp) เป็น file descriptor (int fd) ได้อย่างไร?
ฉันมีกลับด้วยการโทรไปยังFILE * fopen()ฉันจำเป็นต้องได้รับการอธิบายไฟล์จากมันเพื่อการโทรให้เหมือนfsync(fd)มัน ฟังก์ชั่นในการรับไฟล์ descriptor จากตัวชี้ไฟล์คืออะไร?
174 c  linux  unix  file  posix 

16
จับตัวละครจากอินพุตมาตรฐานโดยไม่ต้องรอให้กด
ฉันไม่สามารถจำได้ว่าฉันทำเช่นนี้เพราะมันเกิดขึ้นไม่บ่อยนักสำหรับฉัน แต่ใน C หรือ C ++ วิธีที่ดีที่สุดในการอ่านอักขระจากอินพุตมาตรฐานคืออะไรโดยไม่ต้องรอขึ้นบรรทัดใหม่ (กด Enter) อีกทั้งยังเป็นการดีที่มันจะไม่สะท้อนตัวอักษรที่ป้อนไปยังหน้าจอ ฉันแค่อยากจะกดแป้นพิมพ์โดยไม่ส่งผลต่อหน้าจอคอนโซล
174 c++  c  inputstream 

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