portaldacalheta.pt
  • หลัก
  • การจัดการวิศวกรรม
  • วิทยาศาสตร์ข้อมูลและฐานข้อมูล
  • เครื่องมือและบทช่วยสอน
  • นักลงทุนและเงินทุน
ส่วนหลัง

หลังจากหลายปีที่ผ่านมาโลกยังคงขับเคลื่อนด้วยการเขียนโปรแกรม C



โครงการ C หลายโครงการที่มีอยู่ในปัจจุบันเริ่มต้นเมื่อหลายสิบปีก่อน

การพัฒนาระบบปฏิบัติการ UNIX เริ่มต้นในปี 2512 และเขียนโค้ดใหม่ในภาษา C ในปี 2515 ภาษา C ถูกสร้างขึ้นเพื่อย้ายรหัสเคอร์เนล UNIX จากแอสเซมบลีไปเป็นภาษาระดับที่สูงขึ้น ซึ่งจะทำงานเดียวกันโดยมีบรรทัดโค้ดน้อยลง .



cfo รับผิดชอบแผนกใด

การพัฒนาฐานข้อมูล Oracle เริ่มต้นในปี 2520 และเขียนโค้ดใหม่จากแอสเซมบลีเป็น C ในปี 2526 กลายเป็นฐานข้อมูลที่ได้รับความนิยมมากที่สุดแห่งหนึ่งในโลก



ในปี 1985 Windows 1.0 ได้รับการเผยแพร่ แม้ว่าซอร์สโค้ดของ Windows จะไม่เปิดเผยต่อสาธารณะ แต่ก็มีการระบุไว้เช่นนั้น เคอร์เนลส่วนใหญ่เขียนด้วยภาษา C โดยมีบางส่วนอยู่ในการประกอบ การพัฒนาเคอร์เนลของลินุกซ์เริ่มต้นในปี 2534 และเขียนเป็นภาษาซีในปีถัดไปได้รับการเผยแพร่ภายใต้ใบอนุญาต GNU และถูกใช้เป็นส่วนหนึ่งของระบบปฏิบัติการ GNU ระบบปฏิบัติการ GNU นั้นเริ่มต้นโดยใช้ภาษาการเขียนโปรแกรม C และ Lisp ดังนั้นส่วนประกอบจำนวนมากจึงเขียนด้วยภาษา C



แต่การเขียนโปรแกรม C ไม่ได้ จำกัด เฉพาะโครงการที่เริ่มต้นเมื่อหลายสิบปีก่อนซึ่งภาษาโปรแกรมยังไม่มีมากเท่าในปัจจุบัน ปัจจุบันโครงการ C หลายโครงการยังคงเริ่มดำเนินการ มีเหตุผลที่ดีบางประการสำหรับสิ่งนั้น

โลกขับเคลื่อนด้วย C ได้อย่างไร?

แม้จะมีความแพร่หลายของภาษาระดับสูง แต่ C ก็ยังคงให้อำนาจแก่โลก ต่อไปนี้เป็นระบบบางส่วนที่มีผู้ใช้หลายล้านคนและถูกตั้งโปรแกรมด้วยภาษาซี



Microsoft Windows

พัฒนาเคอร์เนล Windows ของ Microsoft ส่วนใหญ่อยู่ใน C โดยมีบางส่วนเป็นภาษาแอสเซมบลี เป็นเวลาหลายทศวรรษระบบปฏิบัติการที่มีผู้ใช้มากที่สุดในโลกด้วย ประมาณ 90 เปอร์เซ็นต์ของส่วนแบ่งการตลาด ได้รับการขับเคลื่อนโดยเคอร์เนลที่เขียนด้วยภาษาซี

ลินุกซ์

ลินุกซ์ยังเขียนด้วยภาษา C เป็นส่วนใหญ่โดยมีบางส่วนในการประกอบ ประมาณ 97 เปอร์เซ็นต์ของซูเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุด 500 อันดับของโลก รันเคอร์เนล Linux . นอกจากนี้ยังใช้ในคอมพิวเตอร์ส่วนบุคคลหลายเครื่อง



Mac

คอมพิวเตอร์ Mac ยังใช้พลังงานจาก C ด้วย เคอร์เนล OS X ส่วนใหญ่เขียนด้วยภาษา C . ทุกโปรแกรมและไดรเวอร์ใน Mac เช่นเดียวกับในคอมพิวเตอร์ Windows และ Linux ทำงานบนเคอร์เนลที่ใช้ C

มือถือ

ios , Android และ Windows Phone นอกจากนี้เมล็ดยังเขียนด้วย C ซึ่งเป็นเพียงการดัดแปลงอุปกรณ์เคลื่อนที่ของเมล็ด Mac OS, Linux และ Windows ที่มีอยู่ ดังนั้นสมาร์ทโฟนที่คุณใช้ทุกวันจึงทำงานบนเคอร์เนล C



เคอร์เนลระบบปฏิบัติการเขียนด้วยภาษา C

ฐานข้อมูล

ฐานข้อมูลยอดนิยมของโลก ได้แก่ Oracle Database, MySQL, MS SQL Server และ PostgreSQL , ถูกเข้ารหัสด้วย C (สามตัวแรกทั้งใน C และ C ++)



ฐานข้อมูลถูกใช้ในระบบทุกประเภท: การเงินรัฐบาลสื่อบันเทิงโทรคมนาคมสุขภาพการศึกษาค้าปลีกโซเชียลเน็ตเวิร์กเว็บและอื่น ๆ

ฐานข้อมูลขับเคลื่อนโดย C



ภาพยนตร์ 3 มิติ

ภาพเคลื่อนไหว 3 มิติถูกสร้างขึ้นด้วยแอปพลิเคชันที่โดยทั่วไปเขียนด้วยภาษา C และ C ++ แอปพลิเคชันเหล่านี้จำเป็นต้องมีประสิทธิภาพและรวดเร็วเนื่องจากจัดการข้อมูลจำนวนมากและทำการคำนวณจำนวนมากต่อวินาที ยิ่งมีประสิทธิภาพมากเท่าไหร่ศิลปินและแอนิเมเตอร์ก็ยิ่งใช้เวลาน้อยลงในการสร้างภาพภาพยนตร์และ บริษัท ก็จะประหยัดเงินได้มากขึ้น

ระบบฝังตัว

ลองนึกภาพว่าวันหนึ่งคุณตื่นขึ้นมาและไปซื้อของ นาฬิกาปลุกที่ปลุกคุณน่าจะตั้งโปรแกรมไว้ใน C. จากนั้นให้คุณใช้ไมโครเวฟหรือเครื่องชงกาแฟเพื่อทำอาหารเช้า นอกจากนี้ยังเป็นระบบฝังตัวดังนั้นจึงอาจมีการตั้งโปรแกรมไว้ใน C. คุณเปิดทีวีหรือวิทยุในขณะที่คุณทานอาหารเช้า นอกจากนี้ยังเป็นระบบฝังตัวที่ขับเคลื่อนโดย C. เมื่อคุณเปิดประตูโรงรถด้วยรีโมทคอนโทรลคุณกำลังใช้ ระบบฝังตัวที่มักตั้งโปรแกรมไว้ใน C .

จากนั้นคุณก็เข้าไปในรถของคุณ หากมีคุณสมบัติดังต่อไปนี้ให้ตั้งโปรแกรมไว้ใน C:

  • เกียร์อัตโนมัติ
  • ระบบตรวจจับแรงดันลมยาง
  • เซ็นเซอร์ (ออกซิเจนอุณหภูมิระดับน้ำมัน ฯลฯ )
  • หน่วยความจำสำหรับที่นั่งและการตั้งค่ากระจก
  • การแสดงแดชบอร์ด
  • เบรกป้องกันล้อล็อก
  • ระบบควบคุมเสถียรภาพอัตโนมัติ
  • ระบบควบคุมความเร็วคงที่
  • การควบคุมสภาพอากาศ
  • ล็อคป้องกันเด็ก
  • รายการแบบไม่ใช้คีย์
  • ที่นั่งอุ่น
  • การควบคุมถุงลมนิรภัย

คุณไปที่ร้านค้าจอดรถและไปที่ตู้จำหน่ายเครื่องดื่มอัตโนมัติเพื่อรับโซดา พวกเขาใช้ภาษาอะไรในการตั้งโปรแกรมเครื่องหยอดเหรียญนี้? น่าจะเป็นค. แล้วคุณซื้อของที่ร้าน เครื่องบันทึกเงินสดมีโปรแกรมใน C. และเมื่อคุณชำระเงินด้วยบัตรเครดิตของคุณ? คุณเดาได้: เครื่องอ่านบัตรเครดิตน่าจะตั้งโปรแกรมในภาษา C อีกครั้ง

วิธีการเขียนโค้ดที่ดี

อุปกรณ์ทั้งหมดนั้นเป็นระบบฝังตัว พวกเขาเหมือนกับคอมพิวเตอร์ขนาดเล็กที่มีไมโครคอนโทรลเลอร์ / ไมโครโปรเซสเซอร์อยู่ภายในซึ่งกำลังเรียกใช้โปรแกรมหรือที่เรียกว่าเฟิร์มแวร์บนอุปกรณ์ฝังตัว โปรแกรมนั้นจะต้องตรวจจับการกดแป้นและดำเนินการตามนั้นและยังแสดงข้อมูลให้กับผู้ใช้ด้วย ตัวอย่างเช่นนาฬิกาปลุกต้องโต้ตอบกับผู้ใช้ตรวจจับว่าผู้ใช้กดปุ่มอะไรและบางครั้งกดนานแค่ไหนและตั้งโปรแกรมอุปกรณ์ตามนั้นทั้งหมดในขณะที่แสดงข้อมูลที่เกี่ยวข้องให้กับผู้ใช้ ตัวอย่างเช่นระบบเบรกป้องกันล้อล็อกของรถจะต้องสามารถตรวจจับการล็อกอย่างกะทันหันของยางและทำหน้าที่คลายแรงกดบนเบรกในช่วงเวลาสั้น ๆ ปลดล็อกและป้องกันการลื่นไถลที่ไม่สามารถควบคุมได้ การคำนวณทั้งหมดนั้นทำได้โดยระบบฝังตัวที่ตั้งโปรแกรมไว้

แม้ว่าภาษาการเขียนโปรแกรมที่ใช้ในระบบฝังตัวอาจแตกต่างกันไปในแต่ละยี่ห้อ แต่ส่วนใหญ่มักจะถูกตั้งโปรแกรมด้วยภาษา C เนื่องจากคุณลักษณะของภาษาที่มีความยืดหยุ่นประสิทธิภาพประสิทธิภาพและความใกล้เคียงกับฮาร์ดแวร์

ระบบฝังตัวมักเขียนด้วยภาษา C

เหตุใดจึงยังใช้ภาษาโปรแกรม C

ปัจจุบันมีภาษาโปรแกรมหลายภาษาที่ช่วยให้นักพัฒนาสามารถทำงานได้ดีกว่าภาษา C สำหรับโครงการประเภทต่างๆ มีภาษาระดับสูงกว่าที่ให้ไลบรารีในตัวที่มีขนาดใหญ่กว่ามากซึ่งทำให้การทำงานกับ JSON, XML, UI, หน้าเว็บ, คำขอไคลเอ็นต์, การเชื่อมต่อฐานข้อมูล, การจัดการสื่อและอื่น ๆ ง่ายขึ้น

แต่ถึงกระนั้นก็มีเหตุผลมากมายที่เชื่อได้ว่าการเขียนโปรแกรม C จะยังคงใช้งานได้เป็นเวลานาน

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

การพกพาและประสิทธิภาพ

C เกือบจะเป็น ชุดประกอบแบบพกพา ภาษา. ใกล้เคียงกับเครื่องมากที่สุดในขณะที่แทบจะพร้อมใช้งานทั่วไปสำหรับสถาปัตยกรรมโปรเซสเซอร์ที่มีอยู่ มีคอมไพเลอร์ C อย่างน้อยหนึ่งตัวสำหรับเกือบทุกสถาปัตยกรรมที่มีอยู่ และในปัจจุบันเนื่องจากไบนารีที่ได้รับการปรับแต่งอย่างดีซึ่งสร้างขึ้นโดยคอมไพเลอร์สมัยใหม่จึงไม่ใช่เรื่องง่ายที่จะปรับปรุงเอาต์พุตด้วยแอสเซมบลีที่เขียนด้วยมือ

นั่นคือความสามารถในการพกพาและประสิทธิภาพนั่นเอง “ คอมไพเลอร์ไลบรารีและล่ามของภาษาโปรแกรมอื่น ๆ มักใช้ในภาษา C” . ภาษาที่ตีความเช่น Python , ทับทิม และ PHP มีการใช้งานหลักที่เขียนด้วยภาษาซีคอมไพเลอร์ใช้สำหรับภาษาอื่นในการสื่อสารกับเครื่อง ตัวอย่างเช่น C เป็นภาษากลางที่อยู่ภายใต้ Eiffel และ Forth ซึ่งหมายความว่าแทนที่จะสร้างรหัสเครื่องสำหรับทุกสถาปัตยกรรมที่รองรับคอมไพเลอร์สำหรับภาษาเหล่านั้นจะสร้างโค้ด C ระดับกลางและคอมไพเลอร์ C จะจัดการการสร้างรหัสเครื่อง

adobe xd cc ใช้ทำอะไร

C ยังกลายเป็นไฟล์ ภาษากลาง สำหรับการสื่อสารระหว่างนักพัฒนา ในฐานะ Alex Allain ผู้จัดการฝ่ายวิศวกรรม Dropbox และผู้สร้าง Cprogramming.com วางไว้ :

C เป็นภาษาที่ยอดเยี่ยมสำหรับการแสดงความคิดทั่วไปในการเขียนโปรแกรมในแบบที่คนส่วนใหญ่พอใจ นอกจากนี้หลักการมากมายที่ใช้ใน C - ตัวอย่างเช่น argc และ argv สำหรับพารามิเตอร์บรรทัดคำสั่งตลอดจนโครงสร้างแบบวนซ้ำและประเภทตัวแปรจะแสดงเป็นภาษาอื่น ๆ มากมายที่คุณเรียนรู้ดังนั้นคุณจะสามารถพูดคุยกับผู้คนได้แม้ว่าพวกเขาจะไม่รู้จัก C ในลักษณะที่เหมือนกัน ของคุณ

การจัดการหน่วยความจำ

การเข้าถึงที่อยู่หน่วยความจำโดยพลการและการคำนวณทางคณิตศาสตร์ของตัวชี้เป็นคุณสมบัติสำคัญที่ทำให้ C เหมาะอย่างยิ่งสำหรับ การเขียนโปรแกรมระบบ (ระบบปฏิบัติการและระบบฝังตัว)

ที่ขอบเขตฮาร์ดแวร์ / ซอฟต์แวร์ระบบคอมพิวเตอร์และไมโครคอนโทรลเลอร์จะจับคู่อุปกรณ์ต่อพ่วงและพิน I / O เข้ากับที่อยู่หน่วยความจำ แอปพลิเคชันระบบต้องอ่านและเขียนไปยังตำแหน่งหน่วยความจำที่กำหนดเองเหล่านั้นเพื่อสื่อสารกับโลก ดังนั้นความสามารถของ C ในการจัดการกับที่อยู่หน่วยความจำโดยพลการจึงมีความจำเป็นสำหรับการเขียนโปรแกรมระบบ

ไมโครคอนโทรลเลอร์สามารถสร้างโครงสร้างได้เช่นไบต์ที่อยู่ในหน่วยความจำ 0x40008000 จะถูกส่งโดย เครื่องรับ / เครื่องส่งสัญญาณแบบอะซิงโครนัสสากล (หรือ UART ซึ่งเป็นส่วนประกอบฮาร์ดแวร์ทั่วไปสำหรับการสื่อสารกับอุปกรณ์ต่อพ่วง) ทุกครั้งที่บิตหมายเลข 4 ของแอดเดรส 0x40008001 ถูกตั้งค่าเป็น 1 และหลังจากที่คุณตั้งค่าบิตนั้นแล้วอุปกรณ์ต่อพ่วงจะยกเลิกการตั้งค่าโดยอัตโนมัติ

นี่จะเป็นรหัสสำหรับฟังก์ชัน C ที่ส่งไบต์ผ่าน UART นั้น:

#define UART_BYTE *(char *)0x40008000 #define UART_SEND *(volatile char *)0x40008001 |= 0x08 void send_uart(char byte) { UART_BYTE = byte; // write byte to 0x40008000 address UART_SEND; // set bit number 4 of address 0x40008001 }

บรรทัดแรกของฟังก์ชันจะขยายเป็น:

*(char *)0x40008000 = byte;

บรรทัดนี้บอกให้คอมไพเลอร์ตีความค่า 0x40008000 เป็นตัวชี้ไปที่ char จากนั้นจึงจะ dereference (ให้ค่าที่ชี้โดย) ตัวชี้นั้น (ด้วยตัวดำเนินการด้านซ้ายสุด *) และสุดท้ายกำหนด byte ค่าให้กับตัวชี้ที่ถูกอ้างถึงนั้น กล่าวอีกนัยหนึ่ง: เขียนค่าของตัวแปร byte ไปยังที่อยู่หน่วยความจำ 0x40008000.

บรรทัดถัดไปจะขยายเป็น:

*(volatile char *)0x40008001 |= 0x08;

ในบรรทัดนี้เราดำเนินการแบบบิตหรือการดำเนินการตามค่าที่อยู่ 0x40008001 และค่า 0x08 (00001000 ในไบนารีคือ 1 ในบิตหมายเลข 4) และบันทึกผลลัพธ์กลับไปที่ที่อยู่ 0x40008001 กล่าวอีกนัยหนึ่ง: เราตั้งบิต 4 ของไบต์ที่อยู่ที่ 0x40008001 นอกจากนี้เรายังประกาศว่าค่าที่อยู่ 0x40008001 คือ ระเหย . สิ่งนี้จะบอกคอมไพลเลอร์ว่าค่านี้อาจถูกแก้ไขโดยกระบวนการภายนอกโค้ดของเราดังนั้นคอมไพเลอร์จะไม่ตั้งสมมติฐานใด ๆ เกี่ยวกับค่าในแอดเดรสนั้นหลังจากเขียนไปแล้ว (ในกรณีนี้บิตนี้จะไม่ถูกตั้งค่าโดยฮาร์ดแวร์ UART หลังจากที่เราตั้งค่าด้วยซอฟต์แวร์) ข้อมูลนี้มีความสำคัญสำหรับเครื่องมือเพิ่มประสิทธิภาพของคอมไพเลอร์ ถ้าเราทำสิ่งนี้ภายใน for ลูปตัวอย่างเช่นหากไม่ระบุว่าค่านั้นผันผวนคอมไพลเลอร์อาจถือว่าค่านี้ไม่เปลี่ยนแปลงหลังจากถูกตั้งค่าและข้ามการดำเนินการคำสั่งหลังจากลูปแรก

การใช้ทรัพยากรอย่างมุ่งมั่น

คุณลักษณะภาษาทั่วไปที่การเขียนโปรแกรมระบบไม่สามารถพึ่งพาได้คือการรวบรวมขยะหรือแม้แต่การจัดสรรแบบไดนามิกสำหรับระบบฝังตัวบางระบบ แอปพลิเคชันในตัวมีเวลาและทรัพยากรหน่วยความจำ จำกัด มาก มักใช้สำหรับ ระบบเรียลไทม์ ในกรณีที่ไม่สามารถเรียกร้องให้คนเก็บขยะได้ และหากไม่สามารถใช้การจัดสรรแบบไดนามิกได้เนื่องจากไม่มีหน่วยความจำจำเป็นอย่างยิ่งที่จะต้องมีกลไกอื่น ๆ ในการจัดการหน่วยความจำเช่นการวางข้อมูลในที่อยู่ที่กำหนดเองเนื่องจากตัวชี้ C อนุญาต ภาษาที่ขึ้นอยู่กับการจัดสรรแบบไดนามิกและการรวบรวมขยะอย่างมากจะไม่เหมาะสำหรับระบบที่มีทรัพยากร จำกัด

กองทุนการค้นหาคืออะไร

ขนาดรหัส

C มีรันไทม์ที่เล็กมาก และรอยเท้าหน่วยความจำสำหรับรหัสมีขนาดเล็กกว่าภาษาอื่น ๆ ส่วนใหญ่

เมื่อเปรียบเทียบกับ C ++ ไบนารีที่สร้างโดย C ซึ่งไปยังอุปกรณ์ฝังตัวนั้นมีขนาดประมาณครึ่งหนึ่งของไบนารีที่สร้างโดยรหัส C ++ ที่คล้ายกัน สาเหตุหลักประการหนึ่งคือการสนับสนุนข้อยกเว้น

ข้อยกเว้นเป็นเครื่องมือที่ยอดเยี่ยมที่เพิ่มโดย C ++ บน C และหากไม่ถูกเรียกใช้และนำไปใช้อย่างชาญฉลาดพวกเขาก็ไม่มีค่าใช้จ่ายในการดำเนินการตามเวลาจริง (แต่เสียค่าใช้จ่ายในการเพิ่มขนาดโค้ด)

มาดูตัวอย่างใน C ++:

// Class A declaration. Methods defined somewhere else; class A { public: A(); // Constructor ~A(); // Destructor (called when the object goes out of scope or is deleted) void myMethod(); // Just a method }; // Class B declaration. Methods defined somewhere else; class B { public: B(); // Constructor ~B(); // Destructor void myMethod(); // Just a method }; // Class C declaration. Methods defined somewhere else; class C { public: C(); // Constructor ~C(); // Destructor void myMethod(); // Just a method }; void myFunction() { A a; // Constructor a.A() called. (Checkpoint 1) { B b; // Constructor b.B() called. (Checkpoint 2) b.myMethod(); // (Checkpoint 3) } // b.~B() destructor called. (Checkpoint 4) { C c; // Constructor c.C() called. (Checkpoint 5) c.myMethod(); // (Checkpoint 6) } // c.~C() destructor called. (Checkpoint 7) a.myMethod(); // (Checkpoint 8) } // a.~A() destructor called. (Checkpoint 9)

วิธีการของ A, B และ C คลาสถูกกำหนดไว้ที่อื่น (เช่นในไฟล์อื่น ๆ ) ดังนั้นคอมไพลเลอร์จึงไม่สามารถวิเคราะห์ได้และไม่สามารถทราบได้ว่าจะมีข้อยกเว้นหรือไม่ ดังนั้นจึงต้องเตรียมรับมือกับข้อยกเว้นที่เกิดจากตัวสร้างผู้ทำลายหรือการเรียกวิธีการอื่น ๆ ผู้ทำลายไม่ควรขว้าง (วิธีปฏิบัติที่ไม่ดีมาก) แต่ผู้ใช้สามารถโยนต่อไปหรืออาจโยนทางอ้อมโดยเรียกฟังก์ชันหรือวิธีการบางอย่าง (โดยชัดแจ้งหรือโดยปริยาย) ที่แสดงข้อยกเว้น

หากมีสายเข้า myFunction โยนข้อยกเว้น สแต็คคลี่คลาย กลไกต้องสามารถเรียกผู้ทำลายทั้งหมดสำหรับวัตถุที่สร้างขึ้นแล้ว การใช้งานหนึ่งครั้งสำหรับกลไกการคลายสแต็กจะใช้ไฟล์ ที่อยู่ส่งกลับ ของการโทรครั้งสุดท้ายจากฟังก์ชันนี้เพื่อตรวจสอบ 'หมายเลขจุดตรวจ' ของการโทรที่ทำให้เกิดข้อยกเว้น (นี่คือคำอธิบายง่ายๆ) ทำได้โดยการใช้ฟังก์ชันเสริมสร้างอัตโนมัติ (ตารางค้นหาชนิดหนึ่ง) ที่จะใช้สำหรับการคลายสแต็กในกรณีที่มีการโยนข้อยกเว้นออกจากเนื้อความของฟังก์ชันนั้นซึ่งจะคล้ายกับสิ่งนี้:

// Possible autogenerated function void autogeneratedStackUnwindingFor_myFunction(int checkpoint) { switch (checkpoint) { // case 1 and 9: do nothing; case 3: b.~B(); goto destroyA; // jumps to location of destroyA label case 6: c.~C(); // also goes to destroyA as that is the next line destroyA: // label case 2: case 4: case 5: case 7: case 8: a.~A(); } }

หากข้อยกเว้นถูกโยนออกจากจุดตรวจที่ 1 และ 9 ไม่มีวัตถุใดที่ต้องการการทำลายล้าง สำหรับด่าน 3, b และ a จะต้องถูกทำลาย สำหรับด่าน 6, c และ a จะต้องถูกทำลาย ในทุกกรณีต้องเคารพคำสั่งทำลาย สำหรับจุดตรวจ 2, 4, 5, 7 และ 8 จะมีเพียงวัตถุ a จะต้องถูกทำลาย

ฟังก์ชันเสริมนี้จะเพิ่มขนาดให้กับโค้ด นี่เป็นส่วนหนึ่งของค่าใช้จ่ายพื้นที่ที่ C ++ เพิ่มให้กับ C แอปพลิเคชันฝังตัวจำนวนมากไม่สามารถจ่ายพื้นที่เพิ่มเติมนี้ได้ ดังนั้นคอมไพเลอร์ C ++ สำหรับระบบฝังตัวมักมีแฟล็กเพื่อปิดใช้งานข้อยกเว้น การปิดใช้งานข้อยกเว้นใน C ++ นั้นไม่ฟรีเนื่องจากไฟล์ ไลบรารีเทมเพลตมาตรฐาน ต้องอาศัยข้อยกเว้นอย่างมากในการแจ้งข้อผิดพลาด การใช้รูปแบบที่แก้ไขนี้โดยไม่มีข้อยกเว้นจำเป็นต้องมีการฝึกอบรมเพิ่มเติมสำหรับ นักพัฒนา C ++ เพื่อตรวจหาปัญหาที่เป็นไปได้หรือค้นหาจุดบกพร่อง

สร้างแอป angularjs ตั้งแต่เริ่มต้น

และเรากำลังพูดถึง C ++ ซึ่งเป็นภาษาที่มีหลักการคือ“ คุณไม่ต้องจ่ายเงินสำหรับสิ่งที่คุณไม่ได้ใช้” การเพิ่มขนาดไบนารีนี้แย่ลงสำหรับภาษาอื่น ๆ ที่เพิ่มค่าโสหุ้ยเพิ่มเติมด้วยคุณสมบัติอื่น ๆ ที่มีประโยชน์มาก แต่ระบบฝังตัวไม่สามารถจ่ายได้ แม้ว่าภาษา C จะไม่ให้คุณใช้งานคุณสมบัติพิเศษเหล่านี้ แต่ก็ช่วยให้โค้ดมีขนาดกะทัดรัดกว่าภาษาอื่น ๆ

เหตุผลในการเรียนรู้ C

C ไม่ใช่ภาษาที่ยากในการเรียนรู้ดังนั้นประโยชน์ทั้งหมดจากการเรียนรู้จึงค่อนข้างถูก มาดูประโยชน์บางส่วนกัน

Lingua franca

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

โปรดทราบว่าภาษา C เป็นภาษาที่เก่าแก่และแพร่หลายดังนั้นคุณสามารถค้นหาอัลกอริทึมทุกประเภทที่เขียนด้วยภาษา C ได้ทั่วทั้งเว็บ ดังนั้นคุณจะได้รับประโยชน์อย่างมากจากการรู้ภาษานี้

ทำความเข้าใจเครื่อง (คิดเป็น C)

เมื่อเราพูดคุยเกี่ยวกับลักษณะการทำงานของโค้ดบางส่วนหรือคุณลักษณะบางอย่างของภาษาอื่น ๆ กับเพื่อนร่วมงานเราจะลงท้ายด้วย 'การพูดภาษา C:' ส่วนนี้ส่ง 'ตัวชี้' ไปยังวัตถุหรือคัดลอกวัตถุทั้งหมดหรือไม่ อาจมี 'นักแสดง' เกิดขึ้นที่นี่หรือไม่ และอื่น ๆ

เราแทบจะไม่พูดถึง (หรือคิด) เกี่ยวกับคำแนะนำในการประกอบที่ส่วนหนึ่งของโค้ดกำลังทำงานเมื่อวิเคราะห์พฤติกรรมของโค้ดส่วนหนึ่งของภาษาระดับสูง แต่เมื่อพูดถึงสิ่งที่เครื่องจักรกำลังทำอยู่เราจะพูด (หรือคิด) อย่างชัดเจนในภาษา C

ยิ่งไปกว่านั้นหากคุณไม่สามารถหยุดและคิดแบบนั้นเกี่ยวกับสิ่งที่คุณกำลังทำอยู่คุณอาจจบลงด้วยการเขียนโปรแกรมด้วยความเชื่อโชคลางเกี่ยวกับวิธีการทำสิ่งต่างๆ (อย่างน่าอัศจรรย์)

คิดเหมือนเครื่องจักรกับค

ทำงานในโครงการ C ที่น่าสนใจมากมาย

มากมาย โครงการที่น่าสนใจ ไม่ว่าจะเป็นเซิร์ฟเวอร์ฐานข้อมูลขนาดใหญ่หรือเคอร์เนลระบบปฏิบัติการไปจนถึงแอปพลิเคชันแบบฝังขนาดเล็กที่คุณสามารถทำได้ที่บ้านเพื่อความพึงพอใจและความสนุกสนานส่วนตัวทำในรูปแบบ C ไม่มีเหตุผลใดที่จะหยุดทำสิ่งที่คุณอาจชื่นชอบด้วยเหตุผลเดียวที่คุณไม่ทำ ไม่รู้จักภาษาโปรแกรมที่เก่าและเล็ก แต่แข็งแกร่งและได้รับการพิสูจน์แล้วตามกาลเวลาเช่น C

ทำงานใน Cool Projects กับ C

สรุป

Illuminati ไม่ได้วิ่งไปทั่วโลก โปรแกรมเมอร์ C ทำ ทวีต

การเขียนโปรแกรมภาษาซีดูเหมือนจะไม่มีวันหมดอายุ ความใกล้ชิดกับฮาร์ดแวร์ความสามารถในการพกพาที่ยอดเยี่ยมและการใช้ทรัพยากรที่กำหนดทำให้เหมาะสำหรับการพัฒนาในระดับต่ำสำหรับสิ่งต่างๆเช่นเมล็ดของระบบปฏิบัติการและซอฟต์แวร์ฝังตัว ความคล่องตัวประสิทธิภาพและประสิทธิภาพที่ดีทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับซอฟต์แวร์จัดการข้อมูลที่มีความซับซ้อนสูงเช่นฐานข้อมูลหรือภาพเคลื่อนไหว 3 มิติ ความจริงที่ว่าภาษาโปรแกรมจำนวนมากในปัจจุบันดีกว่าภาษา C สำหรับการใช้งานที่ตั้งใจไว้ไม่ได้หมายความว่าจะเอาชนะภาษา C ได้ในทุกด้าน C ยังคงไม่มีใครเทียบได้เมื่อประสิทธิภาพเป็นลำดับความสำคัญ

โลกกำลังทำงานบนอุปกรณ์ที่ใช้พลังงาน C เราใช้อุปกรณ์เหล่านี้ทุกวันไม่ว่าเราจะรู้ตัวหรือไม่ก็ตาม C คืออดีตปัจจุบันและเท่าที่เราเห็นยังคงเป็นอนาคตสำหรับซอฟต์แวร์หลาย ๆ ด้าน

ที่เกี่ยวข้อง: วิธีการเรียนรู้ภาษา C และ C ++: รายการที่ดีที่สุด

การได้รับผลกระทบสูงสุดจากผลิตภัณฑ์ที่มีคุณค่าขั้นต่ำ

กระบวนการออกแบบ

การได้รับผลกระทบสูงสุดจากผลิตภัณฑ์ที่มีคุณค่าขั้นต่ำ
ApeeScape ประกาศผู้ได้รับรางวัลทุนการศึกษาสตรีจากอเมริกาและยุโรป

ApeeScape ประกาศผู้ได้รับรางวัลทุนการศึกษาสตรีจากอเมริกาและยุโรป

อื่น ๆ

โพสต์ยอดนิยม
วิธีการรับสมัครผู้เข้าร่วมวิจัย UX
วิธีการรับสมัครผู้เข้าร่วมวิจัย UX
การลงทุนใน Cryptocurrencies: The Ultimate Guide
การลงทุนใน Cryptocurrencies: The Ultimate Guide
การออกแบบเว็บไซต์ CMS: คู่มือการใช้งานเนื้อหาแบบไดนามิก
การออกแบบเว็บไซต์ CMS: คู่มือการใช้งานเนื้อหาแบบไดนามิก
บทช่วยสอนเกี่ยวกับส่วนขยายแอป iOS 8
บทช่วยสอนเกี่ยวกับส่วนขยายแอป iOS 8
การดำดิ่งสู่ React Native (บทช่วยสอนสำหรับผู้เริ่มต้น)
การดำดิ่งสู่ React Native (บทช่วยสอนสำหรับผู้เริ่มต้น)
 
Init.js: คำแนะนำเกี่ยวกับเหตุผลและวิธีการของชุดเทคโนโลยี JavaScript
Init.js: คำแนะนำเกี่ยวกับเหตุผลและวิธีการของชุดเทคโนโลยี JavaScript
สาเหตุและผลกระทบ - การสำรวจจิตวิทยาสี
สาเหตุและผลกระทบ - การสำรวจจิตวิทยาสี
คุณต้องการฮีโร่: ผู้จัดการโครงการ
คุณต้องการฮีโร่: ผู้จัดการโครงการ
แนวทางปฏิบัติที่ดีที่สุดในการออกแบบ UI เพื่อการสแกนที่ดีขึ้น
แนวทางปฏิบัติที่ดีที่สุดในการออกแบบ UI เพื่อการสแกนที่ดีขึ้น
13 Podcasts นักออกแบบทุกคนควรฟัง
13 Podcasts นักออกแบบทุกคนควรฟัง
โพสต์ยอดนิยม
  • วิธีใช้บอทดิสคอร์ด
  • concurrency ในการเขียนโปรแกรมคืออะไร
  • ข้อยกเว้นการบูตสปริงในการจัดการแนวปฏิบัติที่ดีที่สุด
  • c คอร์ปอเรชั่นหมายถึงอะไร
  • สิ่งที่นำไปสู่วิกฤตหนี้กรีซ
  • กระบวนการอนุมัติงบประมาณเงินทุนขององค์กรมีกี่ขั้นตอน?
หมวดหมู่
  • การจัดการวิศวกรรม
  • วิทยาศาสตร์ข้อมูลและฐานข้อมูล
  • เครื่องมือและบทช่วยสอน
  • นักลงทุนและเงินทุน
  • © 2022 | สงวนลิขสิทธิ์

    portaldacalheta.pt