Xin chào, và chào mừng trở lại.
Trong bài giảng này, tôi muốn thảo luận về một số tính năng cụ thể
liên quan đến ngôn ngữ lập trình c.
Vì vậy, chúng tôi biết tất cả những lợi thế của c.
Tôi đã nói về loại ad nauseam.
Chúng tôi biết rằng c sản xuất nhỏ gọn và các chương trình hiệu quả. Đó là một đặc điểm ngôn ngữ,
điều đó quan trọng.
Đó là một trong những điều quan trọng nhất ngôn ngữ lập trình và sẽ
tiếp tục như vậy. Chúng tôi biết tất cả những điều này.
Vì vậy, tôi chỉ một lần nữa, muốn nhắc lại nó.
Nhưng các tính năng chính của ngôn ngữ c là
chúng hiệu quả, di động, mạnh mẽ và linh hoạt và có định hướng lập trình viên.
Và chúng tôi sẽ đề cập đến những chi tiết hơn điều này có nghĩa là gì.
Nhưng đây là những điều quan trọng đặc điểm của c.
Chúng ta cần hiểu chúng một lần nữa, để hiểu cách
viết mã bằng ngôn ngữ này.
Vậy hiệu quả là gì và tính di động nghĩa là gì?
Chà, c là một ngôn ngữ hiệu quả.
Nó tận dụng tất cả khả năng của các máy tính hiện tại.
Nó rất nhỏ gọn chương trình và được viết bằng c.
Chúng rất nhanh và nhỏ gọn.
Tôi đã nói trước đó về cách ánh xạ của câu lệnh c đến hướng dẫn bằng một số ngôn ngữ
là rất hiệu quả.
Đây là một trong những lý do nó quá nhanh.
Một trong những phàn nàn về java trong quá khứ đã từng, hey,
java thực sự là chậm.
Chà, bạn không có vấn đề này với c.
Khi bạn viết một chương trình trong C, nó chạy nhanh, nó rất nhỏ gọn.
Vì vậy, đó là một tính năng ngôn ngữ.
Đó là một hiệu quả.
Lập trình viên có thể tinh chỉnh các chương trình của họ để làm
cho chúng thậm chí còn hiệu quả hơn vì nó là mức thấp như vậy.
Họ có thể sử dụng nhiều hơn sử dụng hiệu quả bộ nhớ.
Bạn không thể làm những việc như thế này trong java.
Java có bộ thu gom rác của riêng nó và bạn không thể thao tác bộ
nhớ để hiệu quả hơn.
Vì vậy, c là một ngôn ngữ hiệu quả và đó là một ngôn ngữ di động.
Vì vậy, tôi đã đề cập ngắn gọn về điều này trong một bài giảng trước, nhưng điều này rất
quan trọng vì điều này có nghĩa là nếu bạn viết một chương trình
c trên một hệ điều hành, bạn có thể chạy nó trên một hệ điều hành khác
mà không cần sửa đổi nó.
Một trong những vấn đề khi viết mã trong thế giới ngày nay đôi khi nó sẽ
không hoạt động trừ khi bạn viết bằng nhiều ngôn ngữ hoặc sửa
đổi nó một cách rộng rãi.
Vì vậy, ví dụ, nếu bạn viết một ứng dụng Android cho điện thoại Android, nó
không phải sẽ hoạt động trên điện thoại iOS.
Bạn không có những thứ đó các loại vấn đề với c.
Bạn viết c, và nó sẽ hoạt động tất cả các loại phần cứng khác nhau, tất cả
các loại hệ điều hành khác nhau.
Trên thực tế, c là người dẫn đầu trong tính di động, khả năng này và các trình
biên dịch dễ dàng có sẵn.
Bạn có thể nhận được một trình biên dịch trên Windows, Linux, không có vấn đề.
Hệ thống Linux / Unix thường đi kèm với trình biên dịch c, vì vậy bạn thậm chí không phải
tải xuống khi bạn đang sử dụng Linux / Unix giống với Macintosh.
Vì vậy, bạn có thể bắt đầu viết chương trình c ngay lập tức, không có tải xuống bên ngoài.
Họ cũng có sẵn rõ ràng là dành cho Windows.
Nhưng thông thường đối với Windows, bạn sẽ phải tải xuống một trình biên dịch.
Và chúng tôi sẽ làm điều đó khi chúng tôi tải xuống phần mềm cần thiết của chúng tôi.
Vì vậy, có một cơ hội tốt rằng bạn nhận được một trình biên dịch c cho bất kỳ thiết
bị nào bạn đang sử dụng.
Bạn cũng có thể nhận được một trình biên dịch c đối
với thiết bị Android hoặc thiết bị iOS, vi cấp thực sự thấp hoặc máy tính mini cũng như bộ vi xử
lý và ô tô.
Nó cũng rất linh hoạt quan trọng và nó cũng rất mạnh mẽ.
Vì vậy, các nhân Unix Linux được viết bằng c.
Kernel là gì?
Chà, chúng tôi biết Unix và Linux là một hệ điều hành.
Chúng tôi biết một hệ điều hành sẽ giúp bạn hiệu quả hơn -
người dùng hiệu quả hơn - sử dụng máy tính và nó kiểm soát rất nhiều
khía cạnh của việc tương tác với phần cứng, v.v.
Hạt nhân là bộ não của hệ điều hành.
Vì vậy, giống như CPU là bộ não của máy tính, hạt nhân là nơi
thực sự có tất cả bộ não và kiến thức về hệ điều hành đi, vì vậy nó thường chứa
các giao diện phần cứng và hạt nhân nó quản lý bộ nhớ, nó thực hiện
tất cả các việc khác nhau.
Và đó là tất cả được viết bằng C.
Vì vậy, điều đó có thể cho bạn biết khía cạnh mạnh mẽ của ngôn ngữ.
Nếu hạt nhân của một hoạt động hệ thống được viết bằng ngôn ngữ đó,
ngôn ngữ đó có sức mạnh.
Rất nhiều trình biên dịch và thông dịch viên đối với các ngôn ngữ
khác được xây dựng trên c hoặc đã được viết bằng c.
Vì vậy, nếu điều đó không cho bạn biết bản chất mạnh mẽ của ngôn ngữ, tôi
không biết điều gì sẽ xảy ra.
Nhưng Fortran, Perl, Python, bất kỳ trình biên dịch được viết bằng các loại ngôn
ngữ đó được viết bằng c.
Vì vậy, c chương trình đã được sử dụng cho giải quyết các vấn đề vật
lý và kỹ thuật và thậm chí để tạo hoạt ảnh hiệu ứng đặc biệt cho phim, được sử dụng rộng
rãi cho nhiều việc khác nhau.
Tính linh hoạt cũng rất quan trọng, đặc biệt là khi bạn là nhà phát triển
và bạn đang viết mã này.
Bạn muốn có thể làm mọi thứ theo những cách khác nhau.
Bạn muốn có thể giải quyết một vấn đề theo nhiều cách.
Thông thường càng linh hoạt càng tốt.
Tuy nhiên, có một sự đánh đổi giữa tính linh hoạt và hiệu suất.
Vì vậy, đôi khi nó - nó hấp dẫn khi bạn đang thiết kế một ngôn ngữ, nhưng
c được thiết kế để linh hoạt và rất linh hoạt.
Vì vậy, bạn có thể làm chỉ về mọi thứ bạn muốn trong một chương trình c.
Bạn có thể viết ra tất cả những thứ khác nhau các loại ứng dụng.
Và bạn cũng có thể quản lý bộ nhớ và làm những điều khác nhau mà nhiều ngôn
ngữ khác hạn chế bạn.
Có một sự đánh đổi bởi vì đôi khi sự linh hoạt gây ra
nhiều lỗi hơn hoặc khiến các nhà phát triển không để hiểu đầy đủ các khái niệm nhất định vì chúng
có thể phức tạp hơn.
Nhưng cuối cùng, sự linh hoạt là một điều tốt, đặc
biệt nếu bạn là nhà phát triển hiểu ngôn ngữ rất tốt.
Nó cũng là cơ sở cho nhiều hơn các ngôn ngữ nâng cao, chẳng hạn
như c ++, đã đề cập đến điều đó trước đó.
Nó được sử dụng để phát triển điện thoại di động ứng dụng ở dạng mục tiêu-c.
Objective-c là độc quyền ngôn ngữ của Apple.
Về cơ bản, nó c với các đối tượng giống như c ++, nhưng họ quyết định viết
ngôn ngữ của riêng mình.
Nhưng nó được sử dụng trong iOS ít hơn và ít hơn bởi vì Swift đang được phổ
biến hơn, nhưng nó cũng dễ dàng học vì tính nhỏ gọn của nó.
Đó là một ngôn ngữ đầu tiên lý tưởng để học nếu bạn muốn trở thành một lập trình viên.
Và tôi nghĩ rằng tôi đã đưa cơ sở lý luận cho điều đó khá tốt.
Bạn sẽ đạt được đủ kiến thức để
phát triển ứng dụng thực tế rất nhanh chóng và rất dễ dàng.
Vì vậy, đó là lý do tại sao nó tốt đầu tiên để học.
Và đó là những gì bạn sẽ làm thông báo trong lớp
học này là, wow bây giờ tôi đã học được c wow, nó dễ dàng hơn nhiều để
học java, nó dễ dàng hơn để học php, nó dễ dàng hơn rất nhiều những ngôn ngữ khác
này bởi vì nó có mọi thứ mà những ngôn ngữ đó có và nó rất dễ học.
Đó là định hướng của lập trình viên.
Đó là một tính năng ngôn ngữ.
Nó đáp ứng các nhu cầu của các lập trình viên.
Tôi đã nói cho bạn biết Dennis Ritchie như thế nào khi anh ấy tạo ra ngôn
ngữ muốn làm cho nó trở nên phát triển hơn tập trung, và anh ấy đã làm được điều đó.
Anh ấy đã hoàn thành mục tiêu đó.
Nó cho phép bạn truy cập trực tiếp vào phần cứng, cho phép bạn truy cập trực tiếp vào bộ nhớ
và quản lý bộ nhớ của riêng bạn.
Vì vậy, sự linh hoạt đi kèm phát huy tác dụng khi nó
được lập trình viên định hướng.
Trong java, bạn không thể làm được nhiều điều này những thứ như quản lý bộ nhớ của riêng bạn.
C còn có nhiều khả năng khác cho phép linh hoạt.
Và tôi nghĩ rằng sự linh hoạt cho phép để được định hướng lập trình viên nhiều hơn, bởi vì các lập trình
viên thích điều đó.
Họ thích sự linh hoạt đó, họ không muốn được cho biết phải làm gì.
Nó chứa một lựa chọn lớn của các nhà khai thác, cho phép
bạn thể hiện bản thân một cách cô đọng.
Bây giờ điều này có nghĩa là chúng tôi không biết những gì một nhà điều hành được nêu ra.
Nhưng một toán tử có thể là những thứ như cộng và trừ
các toán tử toán học hoặc phép gán toán tử gán dữ liệu vào bộ nhớ.
Và càng nhiều nhà khai thác bạn đã cho phép bạn thể hiện bản thân nhiều
hơn trong mã của bạn.
Và do đó, một tính năng ngôn ngữ với hướng tới lập trình viên nhiều hơn là danh sách các toán
tử này mà chúng tôi sẽ nói về nhiều chi tiết hơn.
Nó ít nghiêm ngặt hơn hầu hết các ngôn ngữ giới hạn những gì bạn có
thể làm như đã nói về điều này.
Tôi đã đề cập đến sự đánh đổi với điều này, tính linh hoạt so với tính nghiêm ngặt.
Đó là một lợi thế mà bạn có thể làm mọi việc theo nhiều cách khác nhau.
Tuy nhiên, nó có thể là một mối nguy hiểm vì lập trình viên
dễ bị lỗi hơn, đặc biệt là với một cái gì đó giống như con trỏ.
Vì vậy, thực tế là bạn có thể quản lý bộ nhớ riêng trong c rất linh hoạt, nhưng
đôi khi nó cũng rất phức tạp.
Và kết quả là nhiều lập trình viên đưa lỗi vào chương trình.
Bây giờ java không cho phép bạn quản lý bộ nhớ của mình.
Nhưng nó cũng kém linh hoạt hơn nhưng nó cũng làm giảm lỗi trong chương
trình của bạn.
Vì vậy, có một sự đánh đổi.
Về cơ bản bạn muốn có linh hoạt bằng cách cho phép mọi thứ trở
nên ít phức tạp hơn.
C mang lại cho bạn nhiều tự do hơn, nhưng cũng đặt nhiều trách nhiệm hơn cho nhà phát
triển và đó là tại sao nó lại được định hướng theo chương trình.
Triển khai C có một thư viện các hàm c hữu ích.
Vì vậy, bạn không cần phải viết mọi thứ trong c nếu bạn muốn làm điều gì đó.
Ngôn ngữ lập trình thường sẽ chứa chức năng chương trình khác đi kèm
với ngôn ngữ.
Vì vậy, chẳng hạn nếu bạn muốn đọc đầu vào từ người dùng, bạn không muốn
viết mã c cấp thấp để làm điều đó.
Sẽ có mã trong c đó đã làm điều đó cho bạn và bạn
chỉ cần sử dụng lại mã đó.
Và điều đó thường được gói gọn trong một cái gì đó được gọi là thư viện.
Và vì vậy c có tất cả các loại thư viện
chức năng đọc dữ liệu từ bàn phím, ghi dữ liệu vào tệp, để tạo ra tất cả những thứ tốt đẹp với các quy trình và mối
đe dọa khác nhau.
Ý tôi là tất cả những điều tốt đẹp.
Vì vậy, thực tế là rất nhiều triển khai đi kèm với ngôn ngữ và
bạn không cần phải thực sự tự thực hiện nó, bạn chỉ phải học cách sử
dụng các thư viện rất thuận lợi và rất có định hướng
của lập trình viên.
Một số tính năng khác của c là cung cấp các tính năng cấp thấp thường được
cung cấp bởi cấp thấp hơn ngôn ngữ, chúng tôi đã nói về điều này.
Nhưng một lần nữa, ví dụ điển hình nhất là bộ nhớ quản lý, truy cập trực tiếp vào bộ nhớ.
Các chương trình có thể được thao tác bằng cách sử dụng các bit.
Chà, nếu đó không phải là mức thấp Tôi không biết là gì. Đó là khả năng quản
lý bộ nhớ biểu diễn ở mức bit.
Bit và byte là cách chúng tôi thực sự lưu trữ dữ liệu trên máy tính,
cung cấp nhiều loại các toán tử thao tác bit.
Một lần nữa, một cái gì đó bằng ngôn ngữ mà chúng ta sẽ nói chi tiết hơn.
Con trỏ đóng một vai trò lớn trong c.
Đây là một khái niệm mà bạn có thể đã nghe nói về trước đây,
bạn có thể chưa nghe nói về, nhưng nó liên quan đến quản lý bộ nhớ.
Chúng ta sẽ có nhiều bài giảng về con trỏ. Nhưng nó là một tính năng rất,
rất quan trọng của c mà bạn nên làm quen ở
cấp độ rất cao.
C quản lý bộ nhớ, c con trỏ. Thông thường, khi bạn nghĩ về ngôn
ngữ lập trình c, đầu tiên thứ bạn nghĩ đến là con trỏ.
Và tất cả điều này là trực tiếp truy cập vào bộ nhớ.
Nhược điểm của c, chúng tôi đã nói chuyện về sự đánh đổi tính linh hoạt, tính linh hoạt
so với sự tự do.
Nó cũng đòi hỏi trách nhiệm bổ sung.
Một số coi đây là một bất lợi, một số quan điểm cho rằng con trỏ bị lạm dụng.
Và kết quả là, nhiều người viết chương trình c tồi.
Vâng, vâng, nếu bạn nếu bạn cho ai đó một công cụ mà bạn làm điều gì
đó, họ làm điều đó không chính xác, lỗi tại ai?
Đó là loại, một lần nữa, bạn có muốn để hạn chế công cụ đó
vì nó bị lạm dụng hoặc bạn có muốn cho phép công cụ đó để cho phép sự linh hoạt.
Vì vậy, bạn thường có thể linh hoạt hơn nhưng nó có nguy cơ mắc nhiều lỗi hơn và rất
nhiều lần những lỗi này là rất khó tìm và theo dõi, đặc biệt nếu chúng
là những thứ thuộc về bộ nhớ.
Vì vậy, đó có thể là một vấn đề.
Những thứ khác vì sự giàu có của nó của các toán tử và tính ngắn gọn của nó,
nó làm cho ngôn ngữ trở nên khó khăn để thỉnh thoảng đọc và làm theo.
Đối với hầu hết các phần, c là rất dễ đọc.
Nhưng nếu bạn sử dụng nhiều các toán tử khác nhau, có thể làm cho
nó phức tạp hơn.
Vì vậy, có một cơ hội để viết viết mã khó hiểu, nhưng đó là bất
kỳ ngôn ngữ nào cũng có thể bị viết dở.
Vì vậy, bạn có thể sử dụng tiếng Anh ngôn ngữ khi bạn nói và
bạn có thể mắc lỗi ngữ pháp.
Nó không khác gì khi bạn viết - sử dụng một ngôn ngữ lập trình.
Nhưng một số nói với c đó là bất lợi vì tất cả các toán tử này.
Nếu bạn sử dụng nó không đúng cách, nó có thể khó theo mã hơn.
Vì vậy, chỉ để tóm tắt.
Đây là một minh họa đẹp một lần nữa tôi tìm thấy
trên web mà tôi muốn cung cấp cho bạn.
Các tính năng cốt lõi của ngôn ngữ c: nhanh chóng và hiệu quả, di động, rất nhiều thư viện đẹp, nơi bạn
có thể sử dụng lại mã và bạn không phải tự mình
làm những việc, theo mô-đun,
đã nói về trước đó, nhưng đây là ý tưởng tổ chức mã
xung quanh các chức năng, dễ
dàng mở rộng và sau đó tất cả những toán tử mạnh mẽ này cho phép
bạn làm mọi việc.
Vì vậy, rất nhiều tính năng tốt đẹp.
Và hầu hết các tính năng chúng ta vừa nói về bằng nhiều ngôn
ngữ hiện đại bởi vì chúng được xây dựng từ c.