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

C เป็นภาษาโปรแกรมคอมพิวเตอร์ทั่วไปที่ใช้สำหรับระบบปฏิบัติการเกมและงานที่มีประสิทธิภาพสูงอื่น ๆ

5
วิธีการเขียนคอมไพเลอร์ขั้นพื้นฐานมาก
คอมไพเลอร์ขั้นสูงเช่นgccรหัสคอมไพล์ลงในไฟล์ที่เครื่องสามารถอ่านได้ตามภาษาที่เขียนโค้ดนั้น (เช่น C, C ++ เป็นต้น) ในความเป็นจริงพวกเขาตีความความหมายของแต่ละรหัสตามห้องสมุดและฟังก์ชั่นของภาษาที่เกี่ยวข้อง ช่วยแก้ให้ด้วยนะถ้าฉันผิด. ฉันต้องการเข้าใจคอมไพเลอร์โดยการเขียนคอมไพเลอร์พื้นฐาน (อาจเป็น C) เพื่อคอมไพล์ไฟล์สแตติก (เช่น Hello World ในไฟล์ข้อความ) ฉันลองทำแบบฝึกหัดและหนังสือบางเล่ม แต่ทั้งหมดสำหรับกรณีจริง พวกเขาจัดการกับการรวบรวมรหัสแบบไดนามิกที่มีความหมายเชื่อมต่อกับภาษาที่เกี่ยวข้อง ฉันจะเขียนคอมไพเลอร์พื้นฐานเพื่อแปลงข้อความคงเป็นไฟล์ที่เครื่องอ่านได้อย่างไร ขั้นตอนต่อไปจะแนะนำตัวแปรในคอมไพเลอร์ ลองนึกภาพว่าเราต้องการเขียนคอมไพเลอร์ที่รวบรวมเฉพาะบางฟังก์ชั่นของภาษา ขอแนะนำบทเรียนและแหล่งข้อมูลเชิงปฏิบัติที่ได้รับความนิยมอย่างสูง :-)
214 c  compiler  compilation  gcc 

7
คุณใช้โฟลตเมื่อใดและเมื่อไหร่ที่คุณจะใช้สองครั้ง
บ่อยครั้งในประสบการณ์การเขียนโปรแกรมของฉันฉันต้องตัดสินใจว่าฉันควรใช้ทศนิยมหรือสองเท่าสำหรับจำนวนจริงของฉัน บางครั้งฉันไปลอยบางครั้งฉันไปสำหรับสองครั้ง แต่จริง ๆ แล้วรู้สึกส่วนตัวมากกว่านี้ ถ้าฉันจะเผชิญหน้าเพื่อปกป้องการตัดสินใจของฉันฉันอาจจะไม่ให้เหตุผลที่ดี คุณใช้โฟลตเมื่อใดและเมื่อไหร่ที่คุณจะใช้สองเท่า คุณมักจะใช้สองครั้งต่อเมื่อมีข้อ จำกัด ของหน่วยความจำเกิดขึ้นและคุณจะต้องลอยตัว หรือคุณใช้งานแบบลอยตลอดเว้นแต่ความต้องการความแม่นยำต้องการให้คุณใช้สองเท่าหรือไม่ มีความแตกต่างอย่างมากเกี่ยวกับความซับซ้อนในการคำนวณของเลขคณิตพื้นฐานระหว่าง float และ double หรือไม่? ข้อดีและข้อเสียของการใช้ float หรือ double คืออะไร และคุณยังใช้คู่ยาวหรือไม่
194 c++  c  floating-point  numbers 

8
ทุกภาษาเขียนด้วยภาษา C หรือไม่
บางครั้งในขณะที่การเขียนโปรแกรมในภาษาต่างๆ (C / C ++, C #) ความคิดนี้อยู่ในใจของฉัน: ภาษาแต่ละภาษาเขียนด้วยภาษา C หรือไม่? ภาษา C เป็นแม่ / พ่อของทุกภาษาหรือไม่ แต่ละแนวคิด ( OOPฯลฯ ) ถูกนำไปใช้ใน C หรือไม่ ฉันไปในทิศทางที่ถูกต้องหรือไม่

12
เมื่อใดจึงควรใช้ C ผ่าน C ++ และ C ++ เหนือ C
ฉันได้รับการแนะนำให้รู้จักกับวิทยาการคอมพิวเตอร์มานานกว่าหนึ่งปีแล้วและจากประสบการณ์ของฉันดูเหมือนว่าทั้ง C และ C ++ ถือว่าเป็นภาษาที่ "เร็วมาก" ในขณะที่คนอื่น ๆ เช่น Python และภาษาสคริปต์นั้นมักจะค่อนข้างช้ากว่า . แต่ฉันเคยเห็นหลาย ๆ กรณีที่โครงการซอฟต์แวร์หรือแม้แต่เล็ก ๆ จะแทรกไฟล์ที่มีจำนวน n ของไฟล์เหล่านั้นจะถูกเขียนใน C และไฟล์ m จำนวนหนึ่งจะถูกเขียนใน C ++ (ฉันยังสังเกตเห็นว่าไฟล์ C ++ มักจะมีส่วนหัวที่สอดคล้องกันในขณะที่ไฟล์ C ไม่มาก) แต่ประเด็นหลักของการสอบถามของฉันคือการรับความรู้สึกโดยทั่วไปของสัญชาตญาณเมื่อมันเหมาะสมที่จะใช้ C มากกว่า C ++ และเมื่อดีกว่าที่จะใช้ C ++ เหนือ C นอกเหนือจากข้อเท็จจริงที่ว่า (1) C ++ เป็นวัตถุเชิงในขณะที่ C ไม่ใช่และ (2) …
164 c++  c 

19
มีเหตุผลใดที่จะใช้ C ++ แทน C, Perl, Python และอื่น ๆ ? [ปิด]
ในฐานะนักพัฒนา Linux (ฝั่งเซิร์ฟเวอร์) ฉันไม่รู้ว่าที่ไหนและเพราะเหตุใดฉันจึงควรใช้ C ++ เมื่อฉันจะไปแสดงตัวเลือกแรกและสุดท้ายคือ C เมื่อ "ประสิทธิภาพ" ไม่ใช่ปัญหาหลักภาษาการเขียนโปรแกรมเช่น Perl และ Python จะเป็นตัวเลือกที่ดี เกือบทุกแอพพลิเคชั่นโอเพนซอร์ซที่ฉันรู้จักในพื้นที่นี้เขียนด้วยภาษา C, Perl, Python, Bash script, AWKหรือแม้แต่ PHP แต่ไม่มีใครใช้ C ++ ฉันไม่ได้พูดถึงเรื่องอื่น ๆ เช่น GUI หรือเว็บแอปพลิเคชันฉันแค่พูดถึง Linux, CLI และ daemons มีเหตุผลที่น่าพอใจในการใช้ C ++ หรือไม่?

7
ภาษาการเขียนโปรแกรม C ถือเป็นภาษาระดับต่ำเมื่อมันออกมาหรือไม่
ปัจจุบันCถือเป็นภาษาระดับต่ำแต่ในยุค 70 ถือว่าเป็นระดับต่ำหรือไม่ เป็นคำที่ใช้งานอยู่แล้ว? ภาษาระดับสูงที่ได้รับความนิยมจำนวนมากไม่ได้มีอยู่จนกระทั่งช่วงกลางยุค 80 และต่อไปดังนั้นฉันอยากรู้ว่าธรรมชาติระดับต่ำมีการเปลี่ยนแปลงอย่างไรในช่วงหลายปีที่ผ่านมา

6
ทำไมภาษาที่เร็วกว่าและดีกว่า C ออกมา [ปิด]
ด้วยภาษาใหม่ "สมัยใหม่" ทุกวันนี้แล้วทำไม C ถึงได้รับการประกาศว่าเป็นเร็วที่สุดและ "ใกล้เคียงกับเครื่อง" มากที่สุด? ฉันไม่เชื่อจริง ๆ ว่ามีวิธีที่ถูกต้องเพียงอย่างเดียวในการทำสิ่งต่าง ๆ และ C ได้อยู่มาเป็นเวลานาน (ตั้งแต่ยุค 60!) เราไม่ได้คิดอะไรดีไปกว่าเขียนเมื่อเกือบ 50 ปีที่แล้วใช่ไหม ฉันทราบว่าภาษาสมัยใหม่มีระดับที่สูงขึ้นและดูแลงานบางอย่างเช่นการรวบรวมขยะและการจัดสรรหน่วยความจำและใช้ประโยชน์จากห้องสมุดและเช่นนั้น ฉันแค่ถามว่าทำไมไม่เคยมีตัวเลือกที่สองที่แท้จริงสำหรับซี เป็นไปได้ไหมที่ C นั้นสมบูรณ์แบบจนไม่มีวิธีอื่นใดในการใช้งานคอมพิวเตอร์ แก้ไขดูฉันไม่ได้พยายามเคาะ C หรือภาษาที่คุณโปรดปราน ฉันสงสัยว่าทำไม C กลายเป็นมาตรฐานและเหตุใดทางเลือกอื่น ๆ จึงไม่เกิดขึ้นและ C ก็แค่ "ยอมรับ"
147 c 

11
ฉันควรหยุดใช้คำว่า C / C ++ หรือไม่
ฉันเข้าใจ C และ C ++ เป็นภาษาที่แตกต่างกัน แต่เมื่อฉันเรียนรู้ C ++ ฉันมักจะบอกเสมอว่าC เป็นชุดย่อยของ C ++หรือ C ++ คือ C พร้อมคลาส และนั่นเป็นเรื่องจริงจนกระทั่งการปรากฏตัวของ C ++ x0, C ++ 11 (หรือ C ++ ที่ทันสมัยโดยทั่วไป 11/14/17) อันที่จริง (โดยเฉพาะเมื่อทำงานกับระบบฝังตัว) มีโอกาสมากที่จะพบรหัสที่เขียนใน C ++ แต่มีชิ้นส่วนจำนวนมากที่เขียนด้วยภาษา C ล้วนๆ ที่นี่ฉันมีคำถามหลายข้อ: ฉันควรหยุดใช้คำว่า C / C ++ หรือไม่ หากคำตอบของ # 1 คือใช่ฉันจะเรียกโปรแกรมที่ใช้ผสม C …
140 c++  c  terminology  c++11 

16
ทำไมผู้คนถึงใช้ C ถ้ามันอันตรายมาก?
ฉันกำลังพิจารณาการเรียนรู้ C. แต่ทำไมคนใช้ C (หรือ C ++) ถ้ามันสามารถใช้ 'อันตราย'? โดยอันตรายฉันหมายถึงตัวชี้และสิ่งอื่นที่คล้ายคลึงกัน เช่นเดียวกับคำถาม Stack Overflow ทำไมฟังก์ชั่นที่ได้รับมีอันตรายมากจนไม่ควรใช้? . ทำไมโปรแกรมเมอร์ไม่เพียง แต่ใช้ Java หรือ Python หรือภาษาอื่นที่รวบรวมเช่น Visual Basic?
132 c++  c 

7
เหตุใดจึงประกาศตัวแปรในหนึ่งบรรทัดและกำหนดให้กับตัวแปรในบรรทัดถัดไป
ฉันมักจะเห็นในรหัส C และ C ++ การประชุมต่อไปนี้: some_type val; val = something; some_type *ptr = NULL; ptr = &something_else; แทน some_type val = something; some_type *ptr = &something_else; ตอนแรกฉันคิดว่านี่เป็นนิสัยที่เหลือจากวันที่คุณต้องประกาศตัวแปรท้องถิ่นทั้งหมดที่ด้านบนของขอบเขต แต่ฉันเรียนรู้ที่จะไม่เลิกนิสัยนักพัฒนามืออาชีพอย่างรวดเร็ว ดังนั้นมีเหตุผลที่ดีสำหรับการประกาศในหนึ่งบรรทัดและกำหนดในภายหลังหรือไม่
101 c++  c 

4
การอ้างอิง Java แตกต่างจากตัวชี้ C อย่างไร
C มีพอยน์เตอร์และ Java มีสิ่งที่เรียกว่าการอ้างอิง พวกเขามีบางสิ่งที่เหมือนกันในแง่ที่ว่าพวกเขาทั้งหมดชี้ไปที่บางสิ่งบางอย่าง ฉันรู้ว่าพอยน์เตอร์ใน C เก็บที่อยู่ที่ชี้ไป การอ้างอิงเก็บที่อยู่ด้วยหรือไม่ พวกมันแตกต่างกันอย่างไรยกเว้นตัวชี้นั้นจะยืดหยุ่นและผิดพลาดได้ง่ายกว่ากัน?
97 java  c  pointers  reference 

3
เหตุใดภาษาการเขียนโปรแกรมโดยเฉพาะ C ใช้วงเล็บปีกกาและไม่ใช่รูปสี่เหลี่ยมจัตุรัส
คำจำกัดความของ "ภาษา C-Style" สามารถทำให้ง่ายลงได้ถึง "ใช้วงเล็บปีกกา ( {})" ทำไมเราถึงใช้ตัวละครนั้น (และทำไมบางอย่างไม่สมเหตุสมผลมากกว่าอย่างเช่น[]ซึ่งไม่ต้องการปุ่ม Shift อย่างน้อยในคีย์บอร์ดของสหรัฐอเมริกา) มีประโยชน์จริงใด ๆ ต่อผลผลิตของโปรแกรมเมอร์ที่มาจากเครื่องหมายปีกกาหรือนักออกแบบภาษาใหม่ควรมองหาทางเลือกอื่น (เช่นคนที่อยู่เบื้องหลัง Python) Wikipediaบอกเราว่า C ใช้เครื่องหมายปีกกาดังกล่าว แต่ไม่ใช่เพราะอะไร คำแถลงในบทความ Wikipedia ในรายการภาษาโปรแกรม C-basedแสดงให้เห็นว่าองค์ประกอบไวยากรณ์นี้ค่อนข้างพิเศษ: ในวงกว้างการพูดภาษาตระกูล C เป็นภาษาที่ใช้ไวยากรณ์บล็อกแบบคล้าย C (รวมถึงเครื่องหมายปีกกาเพื่อเริ่มและจบบล็อก) ...

14
ภาษาการเขียนโปรแกรม C ยังคงใช้อยู่หรือไม่?
ฉันเป็นโปรแกรมเมอร์ C # และการพัฒนาส่วนใหญ่ของฉันสำหรับเว็บไซต์พร้อมกับแอปพลิเคชัน Windows บางตัว เท่าที่ C ไปฉันไม่ได้ใช้มันในเวลานานเนื่องจากไม่จำเป็นต้องทำ มันทำให้ฉันประหลาดใจเมื่อเพื่อนของฉันคนหนึ่งบอกว่าเธอต้องการเรียนรู้ C เพื่อทดสอบงานในขณะที่ฉันกำลังช่วยเธอเรียนรู้ C # ฉันคิดว่าใครบางคนจะเรียนรู้เฉพาะ C เพื่อทดสอบว่ามีการพัฒนาใน C หรือไม่จากความรู้ของฉันการพัฒนาทั้งหมดที่เกี่ยวข้องกับ COM และการออกแบบฮาร์ดแวร์ก็ทำใน C ++ เช่นกัน ดังนั้นการเรียนรู้ C จึงไม่สมเหตุสมผลถ้าคุณจำเป็นต้องใช้ C ++ ฉันไม่เชื่อในความสำคัญทางประวัติศาสตร์ด้วยเหตุใดจึงต้องเสียเวลาและเงินในการเรียนรู้ C C ยังคงใช้ในการพัฒนาซอฟต์แวร์ใหม่หรือสิ่งอื่นใดอีกหรือไม่?

15
อะไรทำให้ C เป็นที่นิยมในยุคของ OOP [ปิด]
ฉันเขียนโค้ดจำนวนมากทั้งใน C และ C ++ แต่ไม่ได้คาดหวังว่า C จะเป็นภาษาที่ได้รับความนิยมอันดับสองรองจาก Java เล็กน้อย ดัชนีชุมชนการเขียนโปรแกรม TIOBE ฉันอยากรู้ว่าทำไมในยุค OOP นี้ C ยังคงเป็นที่นิยม? โปรดทราบว่าภาษาการเขียนโปรแกรมยอดนิยม 4 จาก 5 อันดับแรกคือภาษา "ทันสมัย" ซึ่งเป็นภาษาเชิงวัตถุ ตอนนี้ฉันยอมรับว่าคุณสามารถใช้ OOP ใน C ได้บ้าง แต่มันค่อนข้างเจ็บปวดและไม่เหมาะสม (อย่างน้อยก็เมื่อเทียบกับ C ++ ฉันเดา) ดังนั้นอะไรที่ทำให้ C เป็นที่นิยม มันมีประสิทธิภาพหรือไม่ เป็นระดับต่ำ ห้องสมุดส่วนใหญ่ที่มีอยู่แล้วหรืออย่างอื่น?

16
จิตใจที่อ่อนเยาว์จำเป็นต้องเรียนรู้แนวคิดตัวชี้?
เหตุใด C master Dennis Ritchie จึงแนะนำพอยน์เตอร์ใน C และทำไมภาษาโปรแกรมอื่น ๆ เช่น VB.NET หรือ Java หรือ C # จึงกำจัดภาษาเหล่านั้น ฉันพบบางจุดใน Google และฉันต้องการฟังความคิดเห็นของคุณด้วย ทำไมพวกเขาถึงกำจัดแนวคิดของตัวชี้ในภาษาสมัยใหม่? ผู้คนพูดว่า C เป็นภาษาพื้นฐานและพอยน์เตอร์เป็นแนวคิดที่ทำให้ C มีพลังและโดดเด่นและทำให้ C ยังคงแข่งขันกับภาษาที่ทันสมัยกว่าได้ แล้วทำไมพวกเขาถึงกำจัดพอยน์เตอร์ในภาษาที่ทันสมัยกว่า คุณคิดว่าความรู้เกี่ยวกับพอยน์เตอร์ยังคงมีความสำคัญต่อโปรแกรมเมอร์ใหม่หรือไม่? ทุกวันนี้ผู้คนกำลังใช้ VB.NET หรือ Java ซึ่งสนับสนุนคุณสมบัติขั้นสูงมากกว่า C (และไม่ใช้แนวคิดตัวชี้) และหลาย ๆ คนอย่างที่ฉันเห็นในตอนนี้ (เพื่อนของฉัน) เลือกภาษาเหล่านี้โดยไม่สนใจ C เนื่องจากสนับสนุนคุณสมบัติขั้นสูง ฉันบอกให้พวกเขาเริ่มต้นด้วย C. พวกเขาบอกว่าเป็นเรื่องเสียที่จะเรียนรู้แนวคิดของพอยน์เตอร์เมื่อคุณทำสิ่งขั้นสูงใน VB.NET หรือ Java …

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