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

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

3
เหตุใดไฟล์ C ทั้งหมดที่เขียนโดยอาจารย์ของฉันเริ่มต้นด้วย # ในบรรทัดแรก
ฉันกำลังจะผ่านบันทึกย่อของหลักสูตร C และทุกไฟล์ต้นฉบับของโปรแกรม C เริ่มต้นด้วย#บรรทัดเดียวในบรรทัดแรกของโปรแกรม จากนั้นมีบรรทัดว่างและติดตามสิ่งอื่นตามด้วยmainฟังก์ชัน เหตุผลสำหรับการ#คืออะไร? (ตอนนี้หมดระยะเวลาแล้วและฉันก็ไม่สามารถถามได้เลย) นี่คือตัวอย่าง: # #include <stdio.h> int main() { printf("Hello, World!"); return 0; }
431 c  c-preprocessor 

5
ไฟล์. a และ. so คืออะไร
ฉันกำลังพยายามพอร์ตแอปพลิเคชัน C ไปยังAIXและเริ่มสับสน ไฟล์. a และ. so คืออะไรและใช้อย่างไรเมื่อสร้าง / เรียกใช้แอปพลิเคชัน


17
วิธีการจัดสรรหน่วยความจำที่จัดตำแหน่งโดยใช้ไลบรารีมาตรฐานเท่านั้น
ฉันเพิ่งเสร็จสิ้นการทดสอบซึ่งเป็นส่วนหนึ่งของการสัมภาษณ์งานและมีคำถามหนึ่งที่ทำให้ฉันนิ่งงันแม้กระทั่งการใช้ Google เพื่อการอ้างอิง ฉันต้องการดูว่าทีม StackOverflow สามารถทำอะไรได้บ้าง: memset_16alignedฟังก์ชั่นต้องมี 16 ตัวชี้ไบต์ชิดผ่านไปหรือมันจะผิดพลาด a) คุณจะจัดสรรหน่วยความจำ 1024 ไบต์ได้อย่างไรและจัดแนวให้เป็นเขต 16 ไบต์ b) เพิ่มหน่วยความจำหลังจากที่memset_16alignedได้ดำเนินการ { void *mem; void *ptr; // answer a) here memset_16aligned(ptr, 0, 1024); // answer b) here }

12
ความแตกต่างระหว่าง float และ double คืออะไร?
ฉันได้อ่านเกี่ยวกับความแตกต่างระหว่างความแม่นยำสองเท่าและความแม่นยำเดี่ยว อย่างไรก็ตามในกรณีส่วนใหญ่floatและdoubleดูเหมือนว่าจะใช้แทนกันคือการใช้อย่างใดอย่างหนึ่งดูเหมือนจะไม่ส่งผลกระทบต่อผล เป็นกรณีนี้จริงเหรอ? เมื่อไหร่ที่จะลอยและเปลี่ยนเป็นสองเท่าได้? ความแตกต่างระหว่างพวกเขาคืออะไร?


8
เป็นไปได้ที่โครงสร้าง NSLog C (เช่น CGRect หรือ CGPoint)
ฉันต้องการที่จะสามารถแก้ปัญหาโครงสร้าง C โดยไม่ต้องพิมพ์ทุกคุณสมบัติที่พวกเขาประกอบด้วย เช่นฉันต้องการที่จะสามารถทำอะไรเช่นนี้: CGPoint cgPoint = CGPointMake(0,0); NSLog(@"%@",cgPoint); เห็นได้ชัดว่า '% @' ไม่ทำงานดังนั้นคำถาม

15
ความแตกต่างระหว่างโครงสร้างและสหภาพ
มีตัวอย่างที่ดีที่จะให้ความแตกต่างระหว่าง a structและ a unionหรือไม่? โดยทั่วไปฉันรู้ว่าstructใช้หน่วยความจำทั้งหมดของสมาชิกและunionใช้พื้นที่หน่วยความจำสมาชิกที่ใหญ่ที่สุด มีระดับความแตกต่างของระบบปฏิบัติการอื่น ๆ บ้างไหม?
411 c  struct  unions 

23
Fortran ง่ายกว่าการปรับให้เหมาะสมกว่า C สำหรับการคำนวณจำนวนมากหรือไม่
บางครั้งฉันอ่านว่า Fortran นั้นหรือเร็วกว่า C สำหรับการคำนวณหนัก เป็นเรื่องจริงเหรอ? ฉันต้องยอมรับว่าฉันแทบจะไม่รู้จัก Fortran แต่รหัส Fortran ที่ฉันเคยเห็นไม่ได้แสดงว่าภาษานั้นมีคุณสมบัติที่ C ไม่มีอยู่ หากเป็นจริงโปรดบอกฉันว่าทำไม โปรดอย่าบอกฉันว่าภาษาหรือ libs ดีสำหรับการหยุดหมายเลขฉันไม่ต้องการเขียนแอปหรือ lib เพื่อทำสิ่งนั้นฉันแค่อยากรู้
410 c  performance  fortran 

21
มีฟังก์ชั่นสัญญาณมาตรฐาน (signum, sgn) ใน C / C ++ หรือไม่
ฉันต้องการฟังก์ชั่นที่คืนค่า -1 สำหรับจำนวนลบและ +1 สำหรับจำนวนบวก http://en.wikipedia.org/wiki/Sign_function มันง่ายพอที่จะเขียนของฉันเอง แต่ดูเหมือนว่าบางสิ่งที่ควรจะอยู่ในห้องสมุดมาตรฐานที่ไหนสักแห่ง แก้ไข: โดยเฉพาะฉันกำลังมองหาฟังก์ชั่นที่ทำงานกับลอย
409 c++  c  math 

23
ตัวเลือกใดดีกว่าที่จะใช้สำหรับหารจำนวนเต็ม 2
เทคนิคใดต่อไปนี้เป็นตัวเลือกที่ดีที่สุดสำหรับการหารจำนวนเต็ม 2 และทำไม เทคนิค 1: x = x >> 1; เทคนิค 2: x = x / 2; นี่xคือจำนวนเต็ม

15
ทำไมเราควรพิมพ์ struct บ่อยครั้งใน C?
ฉันได้เห็นหลายโปรแกรมที่ประกอบด้วยโครงสร้างเช่นเดียวกับด้านล่าง typedef struct { int i; char k; } elem; elem user; ทำไมมันจำเป็นบ่อยครั้ง เหตุผลเฉพาะหรือพื้นที่ที่บังคับใช้?
406 c  struct  typedef 

12
วิธีหนึ่งสามารถพิมพ์ตัวแปร size_t แบบพกพาโดยใช้ตระกูล printf ได้อย่างไร
ฉันมีตัวแปรของชนิดและฉันต้องการที่จะพิมพ์โดยใช้size_t printf()ฉันใช้ตัวระบุรูปแบบใดเพื่อพิมพ์แบบพกพา ในเครื่อง 32- บิต%uดูเหมือนว่าถูกต้อง ฉันรวบรวมg++ -g -W -Wall -Werror -ansi -pedanticและไม่มีคำเตือน แต่เมื่อฉันรวบรวมรหัสนั้นในเครื่อง 64 บิตมันจะสร้างคำเตือน size_t x = <something>; printf("size = %u\n", x); warning: format '%u' expects type 'unsigned int', but argument 2 has type 'long unsigned int' %luคำเตือนออกไปตามที่คาดไว้ถ้าเปลี่ยนที่ คำถามคือฉันจะเขียนรหัสได้อย่างไรเพื่อรวบรวมคำเตือนฟรีทั้งบนเครื่อง 32- และ 64- บิต? แก้ไข: ในฐานะที่เป็นวิธีแก้ปัญหาผมคิดว่าหนึ่งคำตอบที่อาจจะมีการ "โยน" ตัวแปรลงในจำนวนเต็มที่เป็นพอใหญ่พูดและพิมพ์โดยใช้unsigned long %luที่จะทำงานในทั้งสองกรณี …
403 c  printf 


1
คู่มือและรายการหนังสือซีแบบเด็ดขาด
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คำถามนี้พยายามรวบรวมรายการหนังสือคุณภาพที่ชุมชนเป็นผู้ดูแลค ภาษาการเขียนโปรแกรมกำหนดเป้าหมายในระดับทักษะต่างๆ C เป็นภาษาการเขียนโปรแกรมที่ซับซ้อนซึ่งยากต่อการรับขณะเดินทางโดยการอ่านบทช่วยสอนออนไลน์ หนังสือที่ครอบคลุมมักเป็นวิธีที่ดีที่สุดในการเรียนรู้ภาษาและการหาหนังสือที่ดีเป็นขั้นตอนแรก สิ่งสำคัญคือต้องหลีกเลี่ยงหนังสือที่เขียนไม่ดีและที่สำคัญกว่านั้นคือหนังสือที่มีข้อผิดพลาดทางเทคนิคร้ายแรง โปรดแนะนำการแก้ไขคำตอบที่ได้รับการยอมรับเพื่อเพิ่มหนังสือที่มีระดับความสามารถโดยประมาณและการย่อ / ขยายสั้น ๆ / คำอธิบายเกี่ยวกับหนังสือแต่ละเล่ม ( โปรดทราบว่าคำถามนั้นถูกล็อคดังนั้นจะไม่มีคำตอบใหม่ใด ๆ ตอบรับหนึ่งคำตอบในรายการ ) อย่าลังเลที่จะเลือกหนังสือคุณภาพหัวข้อหัวบทสรุประดับทักษะและสิ่งอื่นใดที่คุณเห็นว่าผิด หนังสือที่ชุมชน C ถือว่าน่าพอใจจะติดอยู่ในรายชื่อ ส่วนที่เหลือจะถูกลบอย่างสม่ำเสมอ สำหรับหนังสือที่มีบทวิจารณ์โดยสมาคมผู้ใช้ C และ C ++ (ACCU) ควรเพิ่มลิงก์ไปยังบทวิจารณ์เหล่านั้นพร้อมกับหนังสือ ดูสิ่งนี้ด้วย: แหล่งข้อมูลที่เกี่ยวข้องกับ C อื่น ๆ ใน ค แท็กวิกิ รายการที่คล้ายกันสำหรับ C ++: คู่มือและรายการหนังสือ C ++ ขั้นสุดท้าย คำถามนี้ถูกกล่าวถึงในMetaเป็นส่วนหนึ่งของที่ถูกลบคำถามตรวจสอบ 2018 ฉันทามติคือการยกเลิกการลบและบำรุงรักษาอย่างแข็งขัน
400 c 

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