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

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

3
ทำไมเรายังคงเติบโตสแต็คย้อนหลังได้
เมื่อทำการคอมไพล์รหัส C และดูแอสเซมบลีมันทั้งหมดจะมีสแต็กเติบโตแบบย้อนกลับดังนี้: _main: pushq %rbp movl $5, -4(%rbp) popq %rbp ret -4(%rbp)- หมายความว่าตัวชี้ฐานหรือตัวชี้สแต็คกำลังเคลื่อนย้ายที่อยู่หน่วยความจำแทนที่จะไปขึ้นหรือไม่? ทำไมถึงเป็นอย่างนั้น? ฉันเปลี่ยน$5, -4(%rbp)ไป$5, +4(%rbp)คอมไพล์และรันโค้ดและไม่มีข้อผิดพลาด เหตุใดเราจึงต้องย้อนกลับไปในหน่วยความจำสแต็ค
46 c  memory  assembly 

16
ภาษาในประวัติย่อ: ควรใส่“ C / C ++” หรือ“ C, C ++” หรือไม่ [ปิด]
ฉันกำลังจะสำเร็จการศึกษาในสองสามสัปดาห์และประวัติย่อของฉัน (ตามที่คาดไว้) จะแสดงรายการภาษาที่ฉันเคยมีประสบการณ์ ก่อนหน้านี้ผมได้ใส่"C / C ++"แต่กลับมาแล้วผมไม่ได้มีที่ประสบการณ์มากกับทั้งสองภาษาที่ผมทำตอนนี้ ตอนนี้ฉันได้เรียนรู้อย่างเป็นทางการทั้งสองภาษามันก็กลายเป็นชัดเจนสำหรับฉัน (และใครก็ตามที่รู้ภาษาเหล่านี้จริง ๆ ) ว่าพวกเขาเหมือนกันและแตกต่างกันอย่างสมบูรณ์ในเวลาเดียวกัน แน่นอนว่ารหัส C ส่วนใหญ่เป็นรหัส C ++ ที่คอมไพล์ได้ แต่ไวยากรณ์และการรวมฟังก์ชั่นของไลบรารีนั้นค่อนข้างมากเมื่อความคล้ายคลึงกันนี้สิ้นสุดลง ในปัญหาที่ไม่น่ารำคาญส่วนใหญ่โอกาสที่โซลูชัน C ++ ที่พึงประสงค์จะแตกต่างจากโซลูชัน C ที่พึงประสงค์ คำถามของฉัน: นายหน้าจะรับทราบหรือไม่สนใจว่าคุณใส่"C / C ++"ตรงข้ามกับ"C, C ++"หรือไม่? พวกเขาจะสมมติว่าขาดความรู้เกี่ยวกับผลงานของทั้งสองหรือไม่เนื่องจากการรวมรูปแบบแรกหรืออาจเห็นการรวมรูปแบบที่สองว่าเป็น "งาน Beefer" ที่มีศักยภาพ (แสดงเป็น 2 ภาษาแทน "หนึ่ง") ? นอกจากนี้สำหรับงานที่คุณสมัครงานที่สนใจเป็นพิเศษในสองภาษานี้กระบวนการสัมภาษณ์ได้รวมคำถามเกี่ยวกับความแตกต่างระหว่างการเขียนโปรแกรม C และการเขียนโปรแกรม C ++ (ดังนั้นเกี่ยวกับเทคนิคการเขียนโปรแกรมจริงไม่ใช่เฉพาะกระบวนทัศน์พิเศษในภายหลัง )?
46 c++  resume  c 

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

2
วัตถุประสงค์ของ NaN Boxing คืออะไร?
การอ่านศตวรรษที่ 21 Cฉันมาที่บทที่ 6 ในหัวข้อ"การทำเครื่องหมายตัวเลขที่เป็นตัวเลขที่ยอดเยี่ยมกับ NaNs"ซึ่งอธิบายการใช้บิตในแมนทิสซาเพื่อเก็บรูปแบบบิตโดยพลการเพื่อใช้เป็นเครื่องหมายหรือพอยน์เตอร์ WebKit ใช้เทคนิคนี้) ฉันไม่แน่ใจจริงๆฉันเข้าใจประโยชน์ของเทคนิคนี้ว่าฉันเห็นว่าเป็นแฮ็ค (ขึ้นอยู่กับฮาร์ดแวร์ที่ไม่สนใจคุณค่าของ mantissa ใน NaN) แต่มาจากพื้นหลัง Java ที่ฉันไม่คุ้นเคย ความหยาบของ C. นี่คือตัวอย่างของรหัสที่ตั้งและอ่านเครื่องหมายใน NaN #include <stdio.h> #include <math.h> //isnan double ref; double set_na(){ if (!ref) { ref=0/0.; char *cr = (char *)(&ref); cr[2]='a'; } return ref; } int is_na(double in){ if (!ref) return 0; …

6
กำลังเริ่มต้นอักขระถ่าน [] ด้วยการฝึกตัวอักษรที่ไม่ถูกต้องหรือไม่?
ฉันกำลังอ่านหัวข้อเรื่อง"strlen vs sizeof" บน CodeGuruและหนึ่งในคำตอบกล่าวว่า "มันเป็นการปฏิบัติที่ไม่ดี [sic] สำหรับ initialie [sic] charอาร์เรย์ที่มีตัวอักษรสตริง" นี่เป็นความจริงหรือว่าเป็นเพียงความคิดเห็นของเขา (แม้ว่าจะเป็น "สมาชิกระดับสูง")? นี่คือคำถามเดิม: #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } ขวา. ขนาดควรเป็นความยาวบวก 1 ใช่ไหม นี่คือผลลัพธ์ the size …

8
วิธีการอย่างเหมาะสมกับ Google สำหรับ C
ปัญหาในการพยายามใช้ Google เพื่อค้นหาบทช่วยสอนหรือคำตอบสำหรับภาษาการเขียนโปรแกรม C คือ C ไม่ได้ชื่อที่ชัดเจนพอที่จะ จำกัด ขอบเขตการค้นหาให้แคบลง แม้แต่คู่กับคำหลักเช่น "การเขียนโปรแกรม" และ / หรือ "ภาษา" ให้ผลลัพธ์ส่วนใหญ่สำหรับ C ++, C # และ Objective-C มีวิธีใดในการค้นหาทรัพยากร C ที่เฉพาะเจาะจงอย่างมีประสิทธิภาพยิ่งขึ้นโดยใช้ Google
44 c  google  search 

11
อะไรคือวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับ ints ที่ไม่ได้ลงชื่อ?
ฉันใช้ ints ที่ไม่ได้ลงชื่อทุกที่และฉันไม่แน่ใจว่าควรจะ ซึ่งอาจมาจากคอลัมน์รหัสคีย์หลักของฐานข้อมูลไปจนถึงตัวนับ ฯลฯ หากตัวเลขไม่ควรเป็นค่าลบฉันจะใช้ int ที่ไม่ได้ลงนามเสมอ อย่างไรก็ตามฉันสังเกตจากรหัสของผู้อื่นว่าไม่มีใครทำเช่นนี้ มีบางอย่างที่สำคัญที่ฉันมองข้ามหรือไม่? แก้ไข: เนื่องจากคำถามนี้ฉันยังสังเกตเห็นว่าใน C การคืนค่าลบสำหรับข้อผิดพลาดเป็นเรื่องธรรมดาแทนที่จะทิ้งข้อยกเว้นเช่นเดียวกับใน C ++

14
ฉันต้องทำอะไรเพื่อไม่ขโมยรหัส“ Hello World” ด้วยใบอนุญาต GPL
ในโครงการฉันพบไฟล์ที่math.cมีส่วนหัว GPL ขนาดใหญ่และ ... //------------------------------------------------------------------------------ /// Returns the minimum value between two integers. /// \param a First integer to compare. /// \param b Second integer to compare. //------------------------------------------------------------------------------ unsigned int min(unsigned int a, unsigned int b) { if (a < b) { return a; } else { return b; } …
42 licensing  c  gpl 

5
อะไรคือความแตกต่างพื้นฐานระหว่าง C และ C ++ [ปิด]
หลายคนมักจะเขียน "C / C ++" ราวกับว่าพวกเขาเป็นสิ่งเดียวกัน แม้ว่าพวกเขาจะมีความคล้ายคลึงกันมากมาย แต่ก็ไม่เหมือนกันอย่างชัดเจน แต่อะไรคือความแตกต่างพื้นฐานระหว่าง C และ C ++ C ++ เป็นรุ่นปรับปรุงของ C หรือมีคุณสมบัติใน C ซึ่งไม่มีอยู่ใน C ++ หรือไม่
41 c++  c 

2
จะเป็นโปรแกรมเมอร์ไดรเวอร์ Kernel / Systems / Device อย่างไร [ปิด]
ปัจจุบันฉันทำงานอย่างมืออาชีพในฐานะวิศวกรซอฟต์แวร์ที่ทำงานกับ Android OS เราทำงานที่รวมแพลตฟอร์มของเราเป็นดีมอนพื้นเมืองในแง่มุมอื่น ๆ ของโครงการ ฉันทำงานเป็นหลักใน Java การพัฒนาแอปพลิเคชัน SDK และ Android แต่รับความช่วยเหลือเกี่ยวกับแพลตฟอร์มใน C / C ++ อะไรก็ตามฉันมีความสนใจที่ดีในการทำงานอย่างมืออาชีพในการพัฒนาระดับต่ำสำหรับลินุกซ์ ฉันไม่พอใจในตำแหน่งปัจจุบันของฉันและจะไปเที่ยวตราบใดที่ บริษัท ให้ฉัน (อันที่จริงฉันค่อนข้างสนุกกับการทำงานที่นั่น!) แต่ฉันอยากทำงานในทิศทางนั้น ฉันทำงานผ่านการพัฒนาเคอร์เนล Linux (Robert Love) และ The Linux Programming Interface (Michael Kerrisk) (นอกเหนือจากการเสริมสร้างทักษะ C ของฉันในทุกโอกาสที่ฉันได้รับ) และการท่องเว็บสัตว์ประหลาดและเว็บไซต์ที่คล้ายคลึงกันโดยไม่ตั้งใจ ปัญหาที่ฉันเห็นคือไม่มีตำแหน่งระดับรายการ หนึ่งจะบุกเข้าไปในสนามนี้ได้อย่างไร เมื่อใดก็ตามที่ฉันเห็น "Linux Systems Programmer" หรือ "Linux Device Driver Programmer" พวกเขาจำเป็นต้องมีประสบการณ์ที่เกี่ยวข้องอย่างน้อย …
40 c  linux  linux-kernel 

3
ทำไมโอเปอเรเตอร์ NOT แบบลอจิคัลในภาษา C-style“!” และไม่ใช่“ ~~”?
สำหรับตัวดำเนินการไบนารีเรามีตัวดำเนินการทั้งสองบิตและตรรกะ: & bitwise AND | bitwise OR && logical AND || logical OR ไม่ใช่ (โอเปอเรเตอร์ unary) ทำงานแตกต่างกัน มี ~ สำหรับ bitwise และ! สำหรับตรรกะ ฉันจำไม่ได้ว่าเป็นการดำเนินการที่ไม่เป็นเอกเทศเมื่อเทียบกับ AND และหรือ แต่ฉันไม่สามารถคิดได้ว่าทำไมนักออกแบบเลือกที่จะเบี่ยงเบนจากหลักการที่ว่าซิงเกิลเป็น bitwise และ Double นั้นมีเหตุผลที่นี่และเปลี่ยนไปใช้ตัวละครอื่นแทน ฉันเดาว่าคุณสามารถอ่านมันผิดเช่นการดำเนินการสองบิตที่จะคืนค่าตัวถูกดำเนินการ แต่นั่นไม่ได้เป็นปัญหาที่แท้จริงสำหรับฉัน มีเหตุผลที่ฉันขาดหายไปหรือไม่?
39 java  c#  c++  c 

6
คิดอย่างไรกับการเป็นโปรแกรมเมอร์ C หลังจากที่มีอคติกับภาษา OOP [ปิด]
ก่อนหน้านี้ฉันใช้ภาษาเขียนโปรแกรมเชิงวัตถุเท่านั้น (C ++, Ruby, Python, PHP) และตอนนี้ฉันเรียนรู้ C. ฉันพบว่ามันยากที่จะหาวิธีที่เหมาะสมในการทำสิ่งต่าง ๆ ในภาษาโดยไม่มีแนวคิดเรื่อง 'วัตถุ'. ฉันรู้ว่ามันเป็นไปได้ที่จะใช้กระบวนทัศน์ OOP ใน C แต่ฉันต้องการเรียนรู้วิธีการ C - สำนวน เมื่อแก้ปัญหาการเขียนโปรแกรมสิ่งแรกที่ฉันทำคือการจินตนาการวัตถุที่จะแก้ปัญหา ฉันจะแทนที่ขั้นตอนใดได้บ้างเมื่อใช้กระบวนทัศน์การเขียนโปรแกรมที่ไม่ใช่ OOP Imperative

8
เป็นการดีหรือไม่ที่จะต้องพึ่งพาส่วนหัวที่รวมอยู่ในทรานซิสชัน?
ฉันกำลังล้างค่าการรวมในโครงการ C ++ ที่ฉันกำลังทำงานอยู่และฉันสงสัยอยู่เสมอว่าควรรวมส่วนหัวทั้งหมดที่ใช้โดยตรงในไฟล์ใดไฟล์หนึ่งหรือไม่หรือควรจะรวมเฉพาะขั้นต่ำเปล่าเท่านั้น นี่คือตัวอย่างEntity.hpp: #include "RenderObject.hpp" #include "Texture.hpp" struct Entity { Texture texture; RenderObject render(); } (สมมติว่าการประกาศล่วงหน้าสำหรับRenderObjectไม่ใช่ตัวเลือก) ตอนนี้ฉันรู้ว่าRenderObject.hppรวมถึงTexture.hpp- ฉันรู้ว่าเพราะแต่ละคนRenderObjectมีTextureสมาชิก ยังคงฉันอย่างชัดเจนรวมถึงTexture.hppในเพราะฉันไม่แน่ใจว่ามันเป็นความคิดที่ดีที่จะพึ่งพามันถูกรวมอยู่ในEntity.hppRenderObject.hpp ดังนั้น: เป็นการปฏิบัติที่ดีหรือไม่?
37 c++  c  headers  include 

16
การเรียนรู้ภาษาการเขียนโปรแกรมจำนวนมากเป็นเรื่องเจ็บปวดหรือไม่?
ฉันเริ่มอาชีพการเขียนโปรแกรมของฉันกับ BASIC ในช่วงเกรด 9 ฉันเรียนรู้ BASIC เล็กน้อยโดยการเขียนโปรแกรมง่าย ๆ เพื่อเพิ่มลบและพิมพ์ จากนั้นฉันไปมหาวิทยาลัยและรับข้อมูลคอมพิวเตอร์และวิศวกรรมระบบ ในปีแรกฉันได้รับการสอน C และฉันมีความสามารถที่ดี ต่อไปฉันเรียนรู้ C ++ ในปีที่สอง มันเพิ่งสอนความรู้เกี่ยวกับ OOP ให้ฉัน ตอนนี้ฉันกำลังทำ PHP (พร้อมด้วย HTML) ฉันยังไม่เชี่ยวชาญ C ++, BASIC หรือ PHP ตอนนี้ฉันวางแผนที่จะย้ายไปที่การพัฒนาอุปกรณ์พกพา แต่ฉันรู้สึกว่าฉันไม่ได้ครอบคลุมทุกอย่างในภาษาที่ฉันเรียนรู้ มันสำคัญจริงๆหรือ
37 php  c++  c  basic 

17
ฉันจะรู้สึกมั่นใจมากขึ้นเกี่ยวกับทักษะการเขียนโปรแกรมของฉันได้อย่างไร [ปิด]
การเขียนโปรแกรมไม่ใช่คนต่างด้าวสำหรับฉัน ฉันเริ่มทำมาร์กอัพ (HTML ตอนนี้โปรดอย่าหัวเราะเยาะฉัน) เมื่อฉันอายุได้ 12 ปีและ BASIC เล็กน้อยเมื่อฉันอายุ 13 (ฉันรู้มากเกี่ยวกับ Flowcharts, Pseudocodes ณ จุดนี้) แต่แล้วฉันก็ถูกตักเตือนเป็น ชีววิทยาในโรงเรียนมัธยมและด้วยเหตุนี้จึงพลาดความรู้ด้านการเขียนโปรแกรม "ของจริง" ของภาษาเช่น C, Java, etcetera ฉันใช้ CS กับ UG BE ของฉัน (คล้ายกับ BS แต่เป็นไปตามทฤษฎีมากกว่า) ฉันเรียน C & C ++ (ในระดับที่น้อยกว่า) ด้วยตัวเอง (ศาสตราจารย์ของฉันเจ็บปวดมากและชั้นเรียนเต็มไปด้วย code-jocks (ที่เรียนมาแล้วในโรงเรียนและด้วยเหตุนี้ไม่สนใจห้องเรียน) ให้ปุถุชนน้อยกว่าอย่างฉันให้ความสนใจกับชั้นเรียนด้วย) และสามารถชักนำโปรแกรมการบวกหรือการคูณที่ยอดเยี่ยม (อันที่ตอนนี้แม้แต่ผู้ทำสวนเองก็ใจดีด้วย) ปัญหาหลักของฉันคือฉันรู้สึกไม่ดีและบีบคอด้วยทักษะการเขียนโปรแกรมที่ จำกัด ของฉันและดูหมิ่นโดย code-jocks (เชื่อฉันสิฉันเจอเว็บไซต์นี้มานานแล้ว แต่ตอนนี้อาจสร้างความกล้าหาญที่จะโพสต์จริง …

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