C++ thuộc loại ngôn ngữ nào

Bất chấp sự phổ biến của các ngôn ngữ cấp cao hơn, ngôn ngữ lập trình C vẫn tiếp tục trao quyền cho thế giới. Có nhiều lý do để tin rằng lập trình C sẽ còn hoạt động trong thời gian dài. Dưới đây là một số lý do khiến C trở nên vô địch và gần như bắt buộc đối với một số ứng dụng nhất định

Qua

Daniel Munoz

Daniel đã tạo ra các ứng dụng hiệu năng cao bằng C++ cho các công ty lớn như Dreamworks. Anh ấy cũng xuất sắc với C và ASM [x86]

ĐĂNG LẠI

ĐĂNG LẠI

Nhiều dự án C tồn tại ngày nay đã được bắt đầu từ nhiều thập kỷ trước

Sự phát triển của hệ điều hành UNIX bắt đầu vào năm 1969 và mã của nó được viết lại bằng C vào năm 1972. Ngôn ngữ C thực sự được tạo ra để di chuyển mã nhân UNIX từ hợp ngữ sang ngôn ngữ cấp cao hơn, ngôn ngữ này sẽ thực hiện các tác vụ tương tự với ít dòng mã hơn

Quá trình phát triển cơ sở dữ liệu Oracle bắt đầu vào năm 1977 và mã của nó được viết lại từ hợp ngữ sang C vào năm 1983. Nó trở thành một trong những cơ sở dữ liệu phổ biến nhất trên thế giới

Năm 1985 Windows 1. 0 đã được phát hành. Mặc dù mã nguồn của Windows không được công bố rộng rãi, nhưng người ta đã nói rằng nhân của nó chủ yếu được viết bằng C, với một số phần được lắp ráp. Quá trình phát triển nhân Linux bắt đầu vào năm 1991 và nó cũng được viết bằng C. Năm tiếp theo, nó được phát hành theo giấy phép GNU và được sử dụng như một phần của Hệ điều hành GNU. Bản thân hệ điều hành GNU đã bắt đầu sử dụng ngôn ngữ lập trình C và Lisp, vì vậy nhiều thành phần của nó được viết bằng C

Nhưng lập trình C không chỉ giới hạn trong các dự án đã bắt đầu từ nhiều thập kỷ trước, khi không có nhiều ngôn ngữ lập trình như ngày nay. Nhiều dự án C vẫn được bắt đầu ngày hôm nay;

Thế giới được hỗ trợ bởi C như thế nào?

Bất chấp sự phổ biến của các ngôn ngữ cấp cao hơn, C vẫn tiếp tục trao quyền cho thế giới. Sau đây là một số hệ thống được hàng triệu người sử dụng và được lập trình bằng ngôn ngữ C

Microsoft Windows

Nhân Windows của Microsoft được phát triển chủ yếu bằng C, với một số phần bằng hợp ngữ. Trong nhiều thập kỷ, hệ điều hành được sử dụng nhiều nhất trên thế giới, với khoảng 90% thị phần, được cung cấp bởi nhân viết bằng C

Linux

Linux cũng được viết chủ yếu bằng C, với một số phần được lắp ráp. Khoảng 97% trong số 500 siêu máy tính mạnh nhất thế giới chạy nhân Linux. Nó cũng được sử dụng trong nhiều máy tính cá nhân

Mac

Máy tính Mac cũng được cung cấp bởi C, vì nhân OS X được viết chủ yếu bằng C. Mọi chương trình và trình điều khiển trong máy Mac, cũng như trong máy tính Windows và Linux, đang chạy trên nhân do C cung cấp

di động

Nhân iOS, Android và Windows Phone cũng được viết bằng C. Chúng chỉ là bản chuyển thể di động của các nhân Mac OS, Linux và Windows hiện có. Vì vậy, điện thoại thông minh bạn sử dụng hàng ngày đang chạy trên nhân C

cơ sở dữ liệu

Các cơ sở dữ liệu phổ biến nhất trên thế giới, bao gồm Cơ sở dữ liệu Oracle, MySQL, MS SQL Server và PostgreSQL, được mã hóa bằng C [ba cơ sở dữ liệu đầu tiên thực sự có cả bằng C và C++]

Cơ sở dữ liệu được sử dụng trong tất cả các loại hệ thống. tài chính, chính phủ, truyền thông, giải trí, viễn thông, y tế, giáo dục, bán lẻ, mạng xã hội, web, v.v.

Phim 3D

Phim 3D được tạo bằng các ứng dụng thường được viết bằng C và C++. Những ứng dụng đó cần phải rất hiệu quả và nhanh chóng, vì chúng xử lý một lượng dữ liệu khổng lồ và thực hiện nhiều phép tính mỗi giây. Chúng càng hiệu quả, các nghệ sĩ và nhà làm phim hoạt hình càng mất ít thời gian để tạo ra các cảnh quay trong phim và công ty càng tiết kiệm được nhiều tiền.

Những hệ thống nhúng

Hãy tưởng tượng rằng bạn thức dậy một ngày và đi mua sắm. Đồng hồ báo thức đánh thức bạn có khả năng được lập trình bằng C. Sau đó, bạn sử dụng lò vi sóng hoặc máy pha cà phê để làm bữa sáng. Chúng cũng là các hệ thống nhúng và do đó có thể được lập trình bằng C. Bạn bật TV hoặc radio trong khi ăn sáng. Đó cũng là những hệ thống nhúng, được cung cấp bởi C. Khi bạn mở cửa nhà để xe bằng điều khiển từ xa, bạn cũng đang sử dụng một hệ thống nhúng có nhiều khả năng được lập trình bằng C

Sau đó, bạn vào trong xe của bạn. Nếu nó có các tính năng sau, cũng được lập trình bằng C

  • hộp số tự động
  • hệ thống phát hiện áp suất lốp
  • cảm biến [oxy, nhiệt độ, mức dầu, vv. ]
  • bộ nhớ cho ghế và cài đặt gương
  • màn hình bảng điều khiển
  • chống bó cứng phanh
  • kiểm soát ổn định tự động
  • kiểm soát hành trình
  • kiểm soát khí hậu
  • ổ khóa chống trẻ em
  • nhập cảnh không cần chìa khóa
  • ghế nóng
  • kiểm soát túi khí

Bạn đến cửa hàng, đỗ xe và đến máy bán hàng tự động để lấy một lon nước ngọt. Họ đã sử dụng ngôn ngữ nào để lập trình máy bán hàng tự động này? . Sau đó, bạn mua một cái gì đó tại cửa hàng. Máy tính tiền cũng được lập trình bằng C. Và khi bạn thanh toán bằng thẻ tín dụng của mình? . đầu đọc thẻ tín dụng, một lần nữa, có khả năng được lập trình bằng C

Tất cả những thiết bị đó đều là hệ thống nhúng. Chúng giống như các máy tính nhỏ có bộ vi điều khiển/bộ vi xử lý bên trong đang chạy một chương trình, còn được gọi là phần sụn, trên các thiết bị nhúng. Chương trình đó phải phát hiện các lần nhấn phím và hành động tương ứng, đồng thời hiển thị thông tin cho người dùng. Ví dụ: đồng hồ báo thức phải tương tác với người dùng, phát hiện nút nào người dùng đang nhấn và đôi khi là thời gian nhấn và lập trình thiết bị tương ứng, đồng thời hiển thị cho người dùng thông tin liên quan. Ví dụ, hệ thống chống bó cứng phanh của ô tô phải có khả năng phát hiện lốp xe bị khóa đột ngột và hoạt động để giải phóng áp suất lên phanh trong một khoảng thời gian ngắn, mở khóa chúng và do đó ngăn chặn tình trạng trượt bánh không kiểm soát. Tất cả những tính toán đó được thực hiện bởi một hệ thống nhúng được lập trình

Mặc dù ngôn ngữ lập trình được sử dụng trên các hệ thống nhúng có thể khác nhau giữa các thương hiệu, nhưng chúng thường được lập trình bằng ngôn ngữ C, do các tính năng linh hoạt, hiệu quả, hiệu suất và gần gũi với phần cứng của ngôn ngữ này.

Tại sao ngôn ngữ lập trình C vẫn được sử dụng?

Ngày nay, có nhiều ngôn ngữ lập trình cho phép các nhà phát triển làm việc hiệu quả hơn so với C cho các loại dự án khác nhau. Có những ngôn ngữ cấp cao hơn cung cấp các thư viện tích hợp lớn hơn nhiều giúp đơn giản hóa việc làm việc với JSON, XML, UI, trang web, yêu cầu ứng dụng khách, kết nối cơ sở dữ liệu, thao tác phương tiện, v.v.

Nhưng bất chấp điều đó, có rất nhiều lý do để tin rằng lập trình C sẽ còn hoạt động trong một thời gian dài

Trong các ngôn ngữ lập trình, một kích thước không phù hợp với tất cả. Dưới đây là một số lý do khiến C trở nên vô địch và gần như bắt buộc đối với một số ứng dụng nhất định

Tính di động và hiệu quả

C gần như là một hợp ngữ di động. Nó càng gần máy càng tốt trong khi nó hầu như có sẵn cho các kiến ​​trúc bộ xử lý hiện có. Có ít nhất một trình biên dịch C cho hầu hết mọi kiến ​​trúc hiện có. Và ngày nay, do các tệp nhị phân được tối ưu hóa cao do các trình biên dịch hiện đại tạo ra, việc cải thiện đầu ra của chúng bằng cách lắp ráp viết tay không phải là một nhiệm vụ dễ dàng.

Đó là tính di động và hiệu quả của nó mà “các trình biên dịch, thư viện và trình thông dịch của các ngôn ngữ lập trình khác thường được triển khai trong C”. Các ngôn ngữ được giải thích như Python, Ruby và PHP có các triển khai chính được viết bằng C. Nó thậm chí còn được các trình biên dịch sử dụng cho các ngôn ngữ khác để giao tiếp với máy. Ví dụ: C là ngôn ngữ trung gian bên dưới Eiffel và Forth. Điều này có nghĩa là, thay vì tạo mã máy cho mọi kiến ​​trúc được hỗ trợ, trình biên dịch cho các ngôn ngữ đó chỉ tạo mã C trung gian và trình biên dịch C xử lý việc tạo mã máy.

C cũng đã trở thành ngôn ngữ chung để giao tiếp giữa các nhà phát triển. Như Alex Allain, Giám đốc Kỹ thuật Dropbox và người tạo lập trình C. com, đặt nó

C là một ngôn ngữ tuyệt vời để diễn đạt những ý tưởng phổ biến trong lập trình theo cách mà hầu hết mọi người đều cảm thấy thoải mái. Hơn nữa, rất nhiều nguyên tắc được sử dụng trong C – ví dụ,

*[char *]0x40008000 = byte;
2 và
*[char *]0x40008000 = byte;
3 cho tham số dòng lệnh, cũng như cấu trúc vòng lặp và loại biến – sẽ xuất hiện trong nhiều ngôn ngữ khác mà bạn học nên bạn sẽ có thể nói được

Thao tác bộ nhớ

Truy cập địa chỉ bộ nhớ tùy ý và số học con trỏ là một tính năng quan trọng làm cho C trở nên hoàn hảo cho lập trình hệ thống [hệ điều hành và hệ thống nhúng]

Tại ranh giới phần cứng/phần mềm, hệ thống máy tính và bộ vi điều khiển ánh xạ các thiết bị ngoại vi và chân I/O của chúng vào địa chỉ bộ nhớ. Các ứng dụng hệ thống phải đọc và ghi vào các vị trí bộ nhớ tùy chỉnh đó để giao tiếp với thế giới. Vì vậy, khả năng thao tác các địa chỉ bộ nhớ tùy ý của C là bắt buộc đối với lập trình hệ thống

Ví dụ, một bộ vi điều khiển có thể được kiến ​​trúc sao cho byte trong địa chỉ bộ nhớ 0x40008000 sẽ được gửi bởi bộ thu/phát không đồng bộ phổ quát [hoặc UART, một thành phần phần cứng phổ biến để giao tiếp với các thiết bị ngoại vi] mỗi khi bit số 4 của địa chỉ 0x40008001 được thiết lập

Đây sẽ là mã cho hàm C gửi byte qua 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 
}

Dòng đầu tiên của hàm sẽ được mở rộng thành

*[char *]0x40008000 = byte;

Dòng này yêu cầu trình biên dịch diễn giải giá trị

*[char *]0x40008000 = byte;
4 dưới dạng con trỏ tới
*[char *]0x40008000 = byte;
5, sau đó hủy đăng ký [cung cấp giá trị được trỏ bởi] con trỏ đó [với toán tử
*[char *]0x40008000 = byte;
6 ngoài cùng bên trái] và cuối cùng gán giá trị
*[char *]0x40008000 = byte;
0 cho con trỏ đã hủy đăng ký đó. Nói cách khác. ghi giá trị của biến
*[char *]0x40008000 = byte;
0 vào địa chỉ bộ nhớ
*[char *]0x40008000 = byte;
4

Dòng tiếp theo sẽ được mở rộng thành

*[volatile char *]0x40008001 |= 0x08;

Trong dòng này, chúng tôi thực hiện thao tác OR theo bit trên giá trị tại địa chỉ

*[char *]0x40008000 = byte;
3 và giá trị
*[char *]0x40008000 = byte;
4 [
*[char *]0x40008000 = byte;
5 ở dạng nhị phân, i. e. , 1 trong bit số 4] và lưu kết quả trở lại địa chỉ
*[char *]0x40008000 = byte;
3. Nói cách khác. chúng tôi đặt bit 4 của byte có địa chỉ 0x40008001. Chúng tôi cũng tuyên bố rằng giá trị tại địa chỉ
*[char *]0x40008000 = byte;
3 không ổn định. Điều này cho trình biên dịch biết rằng giá trị này có thể được sửa đổi bởi các quy trình bên ngoài mã của chúng tôi, vì vậy trình biên dịch sẽ không đưa ra bất kỳ giả định nào về giá trị trong địa chỉ đó sau khi ghi vào nó. [Trong trường hợp này, bit này không được đặt bởi phần cứng UART ngay sau khi chúng tôi đặt nó bằng phần mềm. ] Thông tin này rất quan trọng đối với trình tối ưu hóa của trình biên dịch. Ví dụ: nếu chúng ta thực hiện điều này bên trong vòng lặp
*[char *]0x40008000 = byte;
8 mà không chỉ định rằng giá trị đó là biến động, trình biên dịch có thể cho rằng giá trị này không bao giờ thay đổi sau khi được đặt và bỏ qua việc thực thi lệnh sau vòng lặp đầu tiên

Sử dụng tài nguyên xác định

Một tính năng ngôn ngữ phổ biến mà lập trình hệ thống không thể dựa vào là thu gom rác hoặc thậm chí chỉ phân bổ động cho một số hệ thống nhúng. Các ứng dụng nhúng rất hạn chế về thời gian và tài nguyên bộ nhớ. Chúng thường được sử dụng cho các hệ thống thời gian thực, nơi không thể thực hiện được lệnh gọi không xác định tới trình thu gom rác. Và nếu không thể sử dụng phân bổ động do thiếu bộ nhớ, điều rất quan trọng là phải có các cơ chế quản lý bộ nhớ khác, chẳng hạn như đặt dữ liệu vào các địa chỉ tùy chỉnh, vì con trỏ C cho phép. Các ngôn ngữ phụ thuộc nhiều vào phân bổ động và thu gom rác sẽ không phù hợp với các hệ thống bị giới hạn tài nguyên

Kích thước mã

C có thời gian chạy rất nhỏ. Và dung lượng bộ nhớ cho mã của nó nhỏ hơn so với hầu hết các ngôn ngữ khác

Ví dụ: khi so sánh với C++, tệp nhị phân do C tạo ra đi đến thiết bị nhúng có kích thước bằng một nửa so với tệp nhị phân được tạo bởi mã C++ tương tự. Một trong những nguyên nhân chính cho điều đó là hỗ trợ ngoại lệ

Các ngoại lệ là một công cụ tuyệt vời được C++ thêm vào so với C, và nếu không được kích hoạt và triển khai một cách thông minh, thì thực tế chúng không có chi phí thời gian thực thi [nhưng phải trả giá bằng việc tăng kích thước mã]

Hãy xem một ví dụ trong C++

*[char *]0x40008000 = byte;
1

Các phương thức của các lớp

*[char *]0x40008000 = byte;
9,
*[volatile char *]0x40008001 |= 0x08;
0 và
*[volatile char *]0x40008001 |= 0x08;
1 được định nghĩa ở một nơi khác [ví dụ như trong các tệp khác]. Do đó trình biên dịch không thể phân tích chúng và không thể biết liệu chúng có ném ngoại lệ hay không. Vì vậy, nó phải chuẩn bị để xử lý các ngoại lệ được ném ra từ bất kỳ hàm tạo, hàm hủy hoặc lệnh gọi phương thức nào của chúng. Các hàm hủy không nên ném [thực tế rất tệ], nhưng người dùng vẫn có thể ném hoặc họ có thể ném gián tiếp bằng cách gọi một số hàm hoặc phương thức [rõ ràng hoặc ngầm định] để ném một ngoại lệ

Nếu bất kỳ lệnh gọi nào trong

*[volatile char *]0x40008001 |= 0x08;
2 đưa ra một ngoại lệ, thì cơ chế tháo gỡ ngăn xếp phải có khả năng gọi tất cả các hàm hủy đối với các đối tượng đã được tạo. Một triển khai cho cơ chế giải phóng ngăn xếp sẽ sử dụng địa chỉ trả về của lệnh gọi cuối cùng từ chức năng này để xác minh “số điểm kiểm tra” của lệnh gọi đã kích hoạt ngoại lệ [đây là lời giải thích đơn giản]. Nó thực hiện điều này bằng cách sử dụng một hàm phụ trợ được tạo tự động [một loại bảng tra cứu] sẽ được sử dụng để tháo gỡ ngăn xếp trong trường hợp một ngoại lệ được ném ra khỏi phần thân của hàm đó, tương tự như sau

*[char *]0x40008000 = byte;
6

Nếu ngoại lệ được ném từ điểm kiểm tra 1 và 9, không có đối tượng nào cần hủy. Đối với điểm kiểm tra 3,

*[volatile char *]0x40008001 |= 0x08;
3 và
*[volatile char *]0x40008001 |= 0x08;
4 phải bị hủy. Đối với điểm kiểm tra 6,
*[volatile char *]0x40008001 |= 0x08;
5 và
*[volatile char *]0x40008001 |= 0x08;
4 phải bị hủy. Trong mọi trường hợp, lệnh tiêu hủy phải được tôn trọng. Đối với các điểm kiểm tra 2, 4, 5, 7 và 8, chỉ cần tiêu diệt đối tượng
*[volatile char *]0x40008001 |= 0x08;
4

Chức năng phụ trợ này thêm kích thước cho mã. Đây là một phần của chi phí không gian mà C++ thêm vào C. Nhiều ứng dụng nhúng không thể đủ dung lượng bổ sung này. Do đó, trình biên dịch C++ cho các hệ thống nhúng thường có cờ để vô hiệu hóa các ngoại lệ. Vô hiệu hóa ngoại lệ trong C++ không miễn phí, vì Thư viện mẫu chuẩn chủ yếu dựa vào ngoại lệ để thông báo lỗi. Sử dụng sơ đồ đã sửa đổi này, không có ngoại lệ, yêu cầu đào tạo thêm cho các nhà phát triển C++ để phát hiện các sự cố có thể xảy ra hoặc tìm lỗi

Và, chúng ta đang nói về C++, một ngôn ngữ có nguyên tắc là. “Bạn không trả tiền cho những gì bạn không sử dụng. ” Sự gia tăng kích thước nhị phân này trở nên tồi tệ hơn đối với các ngôn ngữ khác có thêm chi phí bổ sung với các tính năng khác rất hữu ích nhưng hệ thống nhúng không thể cung cấp được. Mặc dù C không cung cấp cho bạn việc sử dụng các tính năng bổ sung này, nhưng nó cho phép sử dụng mã nhỏ gọn hơn nhiều so với các ngôn ngữ khác

Lý do nên học C

C không phải là một ngôn ngữ khó học, vì vậy tất cả những lợi ích từ việc học nó sẽ khá rẻ. Hãy xem một số lợi ích đó

Ngôn ngữ Pháp

Như đã đề cập, C là ngôn ngữ chung cho các nhà phát triển. Nhiều triển khai thuật toán mới trong sách hoặc trên internet lần đầu tiên [hoặc duy nhất] được cung cấp bằng C bởi các tác giả của chúng. Điều này mang lại khả năng di động tối đa có thể cho việc thực hiện. Tôi đã thấy các lập trình viên loay hoay trên internet để viết lại thuật toán C sang các ngôn ngữ lập trình khác bởi vì họ không biết các khái niệm cơ bản về C

Xin lưu ý rằng C là một ngôn ngữ cũ và phổ biến, vì vậy bạn có thể tìm thấy tất cả các loại thuật toán được viết bằng C trên web. Do đó, rất có thể bạn sẽ được lợi khi biết ngôn ngữ này

Hiểu máy [Suy nghĩ bằng C]

Khi chúng tôi thảo luận về hành vi của một số phần mã nhất định hoặc một số tính năng nhất định của các ngôn ngữ khác với đồng nghiệp, chúng tôi kết thúc bằng việc “nói chuyện bằng C. ” Phần này có chuyển một “con trỏ” tới đối tượng hay sao chép toàn bộ đối tượng không?

Chúng tôi hiếm khi thảo luận [hoặc suy nghĩ] về các hướng dẫn hợp ngữ mà một phần mã đang thực thi khi phân tích hành vi của một phần mã của ngôn ngữ cấp cao. Thay vào đó, khi thảo luận về những gì máy đang làm, chúng ta nói [hoặc nghĩ] khá rõ ràng bằng C

Hơn nữa, nếu bạn không thể dừng lại và nghĩ theo cách đó về những gì bạn đang làm, bạn có thể kết thúc việc lập trình với một dạng mê tín dị đoan nào đó về cách [một cách kỳ diệu] mọi thứ được thực hiện.

Làm việc trên nhiều dự án C thú vị

Nhiều dự án thú vị, từ các máy chủ cơ sở dữ liệu lớn hoặc nhân hệ điều hành, đến các ứng dụng nhúng nhỏ mà bạn thậm chí có thể thực hiện tại nhà để thỏa mãn và vui vẻ cá nhân, đều được thực hiện bằng C. Không có lý do gì để ngừng làm những việc bạn có thể yêu thích chỉ vì một lý do duy nhất là bạn không biết một ngôn ngữ lập trình cũ và nhỏ, nhưng mạnh mẽ và đã được chứng minh qua thời gian như C

Sự kết luận

Illuminati không điều hành thế giới. Lập trình viên C làm

tiếng riu ríu

Ngôn ngữ lập trình C dường như không có ngày hết hạn. Nó gần với phần cứng, khả năng di động tuyệt vời và việc sử dụng tài nguyên một cách xác định làm cho nó trở nên lý tưởng để phát triển ở mức độ thấp cho những thứ như nhân hệ điều hành và phần mềm nhúng. Tính linh hoạt, hiệu quả và hiệu suất tốt khiến nó trở thành lựa chọn tuyệt vời cho phần mềm thao tác dữ liệu có độ phức tạp cao, như cơ sở dữ liệu hoặc hoạt hình 3D. Thực tế là nhiều ngôn ngữ lập trình ngày nay tốt hơn C cho mục đích sử dụng của chúng không có nghĩa là chúng đánh bại C trong mọi lĩnh vực. C vẫn vượt trội khi ưu tiên hiệu suất

Thế giới đang chạy trên các thiết bị hỗ trợ C. Chúng ta sử dụng các thiết bị này hàng ngày dù có nhận ra hay không. C là quá khứ, hiện tại và theo như chúng ta thấy, vẫn là tương lai cho nhiều lĩnh vực phần mềm

Có liên quan. Cách học ngôn ngữ C và C++. Danh sách cuối cùng

thẻ

CProgrammingPerformanceEmbeddedSystemsBareMetal

Người làm việc tự do? Tìm công việc tiếp theo của bạn.

Công việc lập trình viên C

Xem thông tin đầy đủ

Daniel Munoz

Kỹ sư phần mềm tự do

Thông tin về các Tác giả

Daniel hiện đang làm việc trong thư viện truy cập Kho dữ liệu C++ hiệu suất cao cho Meta. Anh ấy đã làm việc trên các ứng dụng cao cấp khác bằng C++ cho các công ty như Dreamworks Animation SKG. Ông cũng đã phát triển các ứng dụng C++ với khung Intel Threading Building Blocks, thư viện Boost C++ và Qt

Thuê Daniel

Bình luận

Robert

Đây là một bài báo tuyệt vời, Daniel. Lịch sử và độ bền của C rất đáng để thảo luận ngay bây giờ. Tôi bắt đầu C vào năm 1982 sau 15 năm lắp ráp. Với sự kết hợp đó, tôi có thể hình dung chính xác những gì CPU đang làm cũng như phát ra và xem xét trình biên dịch mã chương trình cho máy chủ [đôi khi cần thiết]. Tôi viết bằng C ở nhà hầu như mỗi ngày

Robert

Đây là một bài báo tuyệt vời, Daniel. Lịch sử và độ bền của C rất đáng để thảo luận ngay bây giờ. Tôi bắt đầu C vào năm 1982 sau 15 năm lắp ráp. Với sự kết hợp đó, tôi có thể hình dung chính xác những gì CPU đang làm cũng như phát ra và xem xét trình biên dịch mã chương trình cho máy chủ [đôi khi cần thiết]. Tôi viết bằng C ở nhà hầu như mỗi ngày

Daniel Angel Muñoz Trejo

Cảm ơn Robert

Daniel Angel Muñoz Trejo

Cảm ơn Robert

Dennis

Lần trước tôi viết bằng C là năm 1991 và tôi viết khá tốt. Tôi thích con trỏ nhưng chúng thực sự có thể khiến bạn gặp rắc rối nếu bạn không cẩn thận

Dennis

Lần trước tôi viết bằng C là năm 1991 và tôi viết khá tốt. Tôi thích con trỏ nhưng chúng thực sự có thể khiến bạn gặp rắc rối nếu bạn không cẩn thận

Bob Bonomo

Tôi bắt đầu lập trình bằng "C" vào năm 1979 tại Trường Kỹ thuật & Khoa học Ứng dụng của Đại học Columbia. Trên thực tế, vào năm 2009, tôi đã gửi ấn bản đầu tiên của cuốn sách "Ngôn ngữ lập trình C" cho Brian Kernighan và sau đó là cho Dennis Ritchie với một lá thư cảm ơn và xin chữ ký của họ. Cả hai đều đã ký và viết một ghi chú cá nhân cho tôi

Bob Bonomo

Tôi bắt đầu lập trình bằng "C" vào năm 1979 tại Trường Kỹ thuật & Khoa học Ứng dụng của Đại học Columbia. Trên thực tế, vào năm 2009, tôi đã gửi ấn bản đầu tiên của cuốn sách "Ngôn ngữ lập trình C" cho Brian Kernighan và sau đó là cho Dennis Ritchie với một lá thư cảm ơn và xin chữ ký của họ. Cả hai đều đã ký và viết một ghi chú cá nhân cho tôi

Daniel Angel Muñoz Trejo

Hà. Tuyệt quá

Daniel Angel Muñoz Trejo

Hà. Tuyệt quá

Mario Maracho

Mặc dù tôi không lập trình bằng C trong một thời gian nhưng cấu trúc của nó rất giống với các ngôn ngữ thực tế nên tôi không phải học lại quá nhiều khi bắt đầu lập trình bằng Java, PHP hoặc Java Script

Mario Maracho

Mặc dù tôi không lập trình bằng C trong một thời gian nhưng cấu trúc của nó rất giống với các ngôn ngữ thực tế nên tôi không phải học lại quá nhiều khi bắt đầu lập trình bằng Java, PHP hoặc Java Script

Alfredo Edye

Bài báo tuyệt vời Daniel. Trên hạ tầng truyền hình ngành C cũng ở nhiều nơi. ;-]

Alfredo Edye

Bài báo tuyệt vời Daniel. Trên hạ tầng truyền hình ngành C cũng ở nhiều nơi. ;-]

Daniel Angel Muñoz Trejo

Cảm ơn Alfredo. Vâng, đó là chính xác

Daniel Angel Muñoz Trejo

Cảm ơn Alfredo. Vâng, đó là chính xác

Rajib Mahmud

tôi yêu c rất nhiều. ]

Rajib Mahmud

tôi yêu c rất nhiều. ]

Rajib Mahmud

thưa ngài đúng không. bất chấp sự cố của con trỏ, tôi rất thích nó

Rajib Mahmud

thưa ngài đúng không. bất chấp sự cố của con trỏ, tôi rất thích nó

dave aronson

Bài báo tuyệt vời, Daniel. Tôi sẽ chia sẻ điều này với [tha thứ cho phích cắm] nhóm Lập trình C cũ đơn giản trên LinkedIn [https. //www. linkin. com/grp/home?gid=1627067], mà tôi chạy. Một nitpick mặc dù. để thiết lập một bit, bạn không muốn thực hiện theo chiều bit hay không và? . Ngoài ra, không rõ tại sao bạn lại tạo macro đó chứ không phải chức năng. Có lẽ cho tốc độ, đưa ra bối cảnh. Một cái gì đó ít nhạy cảm với thời gian hơn nhưng tương tự về mặt khác chắc chắn có thể là một chức năng

dave aronson

Bài báo tuyệt vời, Daniel. Tôi sẽ chia sẻ điều này với [tha thứ cho phích cắm] nhóm Lập trình C cũ đơn giản trên LinkedIn [https. //www. linkin. com/grp/home?gid=1627067], mà tôi chạy. Một nitpick mặc dù. để thiết lập một bit, bạn không muốn thực hiện theo chiều bit hay không và? . Ngoài ra, không rõ tại sao bạn lại tạo macro đó chứ không phải chức năng. Có lẽ cho tốc độ, đưa ra bối cảnh. Một cái gì đó ít nhạy cảm với thời gian hơn nhưng tương tự về mặt khác chắc chắn có thể là một chức năng

Daniel Angel Muñoz Trejo

chào Dave. Ư, bạn đung. Tôi sẽ xóa cái đó & và đặt một. thay vì. Và vâng, nó có thể là một chức năng để rõ ràng hơn. Dù sao đây chỉ là một ví dụ ngắn nên tôi sẽ để nguyên macro

Daniel Angel Muñoz Trejo

chào Dave. Ư, bạn đung. Tôi sẽ xóa cái đó & và đặt một. thay vì. Và vâng, nó có thể là một chức năng để rõ ràng hơn. Dù sao đây chỉ là một ví dụ ngắn nên tôi sẽ để nguyên macro

Daniel Angel Muñoz Trejo

Xong. đã sửa. Và chắc chắn, chia sẻ nó

Daniel Angel Muñoz Trejo

Xong. đã sửa. Và chắc chắn, chia sẻ nó

Webster

Anh ấy đã có, vì vậy bạn có thể thấy một vài lượt truy cập nữa đến từ LinkedIn

Webster

Anh ấy đã có, vì vậy bạn có thể thấy một vài lượt truy cập nữa đến từ LinkedIn

Dan Stromberg

Tôi biết các công cụ GNU thường được viết bằng C, nhưng có thực sự nhiều trong LISP không?

Dan Stromberg

Tôi biết các công cụ GNU thường được viết bằng C, nhưng có thực sự nhiều trong LISP không?

Daniel Angel Muñoz Trejo

Xin chào Dan, không chắc có bao nhiêu công cụ GNU được viết bằng LISP. Hai ngôn ngữ đầu tiên có sẵn cho Hệ điều hành GNU là C và Lisp [http. //vòng nguyệt quế. datsi. fi. upm. es/~ssoo/IG/tải xuống/dòng thời gian. html]. Nhưng có vẻ như bạn nói, C được sử dụng nhiều hơn Lisp

Daniel Angel Muñoz Trejo

Xin chào Dan, không chắc có bao nhiêu công cụ GNU được viết bằng LISP. Hai ngôn ngữ đầu tiên có sẵn cho Hệ điều hành GNU là C và Lisp [http. //vòng nguyệt quế. datsi. fi. upm. es/~ssoo/IG/tải xuống/dòng thời gian. html]. Nhưng có vẻ như bạn nói, C được sử dụng nhiều hơn Lisp

Mani Ghasemnia Hamedani

Hầu hết nếu không muốn nói là tất cả các ứng dụng tuyệt vời, chẳng hạn như Adobe Photoshop, Adobe Illustrator, Adobe Premiere, Adobe Acrobat, Microsoft Office và nhiều ứng dụng khác đều được viết bằng C [hoặc C++]. Tất cả các hệ điều hành chính được viết bằng C. Ngôn ngữ của Microsoft Windows ở cấp độ API là C. Mac OS X dựa trên Unix được viết bằng C, mặc dù lớp Cocoa nằm trong Objective-C. Lưu ý rằng Mục tiêu-C không phải là một điều rất khác biệt; . Viết mã Mục tiêu-C thực sự là viết mã C; . [Xin đừng nói Swift là ngôn ngữ mới của Mac OS X và iOS, vì tôi không tin nó là ngôn ngữ sáng tạo và cần thiết cho OS X và iOS. Nó chỉ được tạo ra như một vấn đề kinh doanh và cạnh tranh của Apple với Google và Microsoft. ] IMHO, mọi lập trình viên nên có kiến ​​thức và kỹ năng vững chắc về C để hiểu rõ hơn về những gì mình đang làm. Chỉ học các ngôn ngữ cấp cao, mặc dù là tốt và có thể cần thiết cho nhu cầu ngày nay, nhưng không đủ để trở thành một lập trình viên giỏi. Tôi vẫn viết các ứng dụng cho Microsoft Windows bằng C thuần túy [và C++ khi tôi cần các tính năng hướng đối tượng] và chưa bao giờ tin rằng lập trình bằng C lại tốn nhiều thời gian đến thế. Nếu bạn biết mình đang làm gì và có kiến ​​thức tốt và vững chắc về công nghệ bạn đang sử dụng, thì không những nó không tốn thời gian mà còn nhanh hơn và hiệu quả hơn rất nhiều. Câu nói "C không tốt, vì nó đặt lập trình viên phụ trách quản lý bộ nhớ. " được xuất bản bởi những người không thoải mái với C, vì họ chưa học cách nắm lấy nó trong tay

Mani Ghasemnia Hamedani

Hầu hết nếu không muốn nói là tất cả các ứng dụng tuyệt vời, chẳng hạn như Adobe Photoshop, Adobe Illustrator, Adobe Premiere, Adobe Acrobat, Microsoft Office và nhiều ứng dụng khác đều được viết bằng C [hoặc C++]. Tất cả các hệ điều hành chính được viết bằng C. Ngôn ngữ của Microsoft Windows ở cấp độ API là C. Mac OS X dựa trên Unix được viết bằng C, mặc dù lớp Cocoa nằm trong Objective-C. Lưu ý rằng Mục tiêu-C không phải là một điều rất khác biệt; . Viết mã Mục tiêu-C thực sự là viết mã C; . [Xin đừng nói Swift là ngôn ngữ mới của Mac OS X và iOS, vì tôi không tin nó là ngôn ngữ sáng tạo và cần thiết cho OS X và iOS. Nó chỉ được tạo ra như một vấn đề kinh doanh và cạnh tranh của Apple với Google và Microsoft. ] IMHO, mọi lập trình viên nên có kiến ​​thức và kỹ năng vững chắc về C để hiểu rõ hơn về những gì mình đang làm. Chỉ học các ngôn ngữ cấp cao, mặc dù là tốt và có thể cần thiết cho nhu cầu ngày nay, nhưng không đủ để trở thành một lập trình viên giỏi. Tôi vẫn viết các ứng dụng cho Microsoft Windows bằng C thuần túy [và C++ khi tôi cần các tính năng hướng đối tượng] và chưa bao giờ tin rằng lập trình bằng C lại tốn nhiều thời gian đến thế. Nếu bạn biết mình đang làm gì và có kiến ​​thức tốt và vững chắc về công nghệ bạn đang sử dụng, thì không những nó không tốn thời gian mà còn nhanh hơn và hiệu quả hơn rất nhiều. Câu nói "C không tốt, vì nó đặt lập trình viên phụ trách quản lý bộ nhớ. " được xuất bản bởi những người không thoải mái với C, vì họ chưa học cách nắm lấy nó trong tay

Roku

Bài báo hay. Tôi đã tự hỏi tại sao C vẫn được sử dụng phổ biến như vậy sau hơn 40 năm. Bây giờ tôi biết. . ]

Roku

Bài báo hay. Tôi đã tự hỏi tại sao C vẫn được sử dụng phổ biến như vậy sau hơn 40 năm. Bây giờ tôi biết. . ]

truyện tranh

Hệ điều hành và Cơ sở dữ liệu chủ yếu sử dụng C. Nhưng tại sao chúng ta không thấy sử dụng C nhiều trong phát triển Web? . Mình mới tìm được CppCMS mong nhiều người giúp phát triển cái này

truyện tranh

Hệ điều hành và Cơ sở dữ liệu chủ yếu sử dụng C. Nhưng tại sao chúng ta không thấy sử dụng C nhiều trong phát triển Web? . Mình mới tìm được CppCMS mong nhiều người giúp phát triển cái này

truyện tranh

có cách nào để C có thể tốt hơn trên Con trỏ không?

truyện tranh

có cách nào để C có thể tốt hơn trên Con trỏ không?

Lucian Popescu

Xét về hiệu suất [thời gian CPU hoặc mức tiêu thụ bộ nhớ], C hoặc thậm chí C ++ là vô địch. Tuy nhiên, thế giới phát triển web vui vẻ hy sinh hiệu suất cho năng suất. đó là miền "khung" [có thể là Java hoặc PHP]. Nếu bạn chỉ ra những tổn thất nghiêm trọng về hiệu suất và sự trừu tượng hóa vô ích trong mã chỉ để phù hợp với một số khuôn khổ/"đặc điểm kỹ thuật" thì bạn sẽ gặp phải những đôi tai điếc nếu không muốn nói là thù địch. Hết lần này đến lần khác bạn được nhắc nhở "đừng phát minh lại bánh xe". Theo phương châm này, các ngôn ngữ cấp cao hơn có rất nhiều "lập trình viên" không mong đợi hoặc thậm chí có khả năng suy nghĩ. chỉ là những công nhân vô danh trên một dây chuyền sản xuất

Lucian Popescu

Xét về hiệu suất [thời gian CPU hoặc mức tiêu thụ bộ nhớ], C hoặc thậm chí C ++ là vô địch. Tuy nhiên, thế giới phát triển web vui vẻ hy sinh hiệu suất cho năng suất. đó là miền "khung" [có thể là Java hoặc PHP]. Nếu bạn chỉ ra những tổn thất nghiêm trọng về hiệu suất và sự trừu tượng hóa vô ích trong mã chỉ để phù hợp với một số khuôn khổ/"đặc điểm kỹ thuật" thì bạn sẽ gặp phải những đôi tai điếc nếu không muốn nói là thù địch. Hết lần này đến lần khác bạn được nhắc nhở "đừng phát minh lại bánh xe". Theo phương châm này, các ngôn ngữ cấp cao hơn có rất nhiều "lập trình viên" không mong đợi hoặc thậm chí có khả năng suy nghĩ. chỉ là những công nhân vô danh trên một dây chuyền sản xuất

nathanstarksupposedly

bạn đá đít. Tôi ước chúng ta có thể đi uống cà phê. Ồ, bình tĩnh nào 'OG'

nathanstarksupposedly

bạn đá đít. Tôi ước chúng ta có thể đi uống cà phê. Ồ, bình tĩnh nào 'OG'

Arshi Bano

Bài viết hay & Cảm ơn đã chia sẻ. Java là một ngôn ngữ lập trình rất mạnh, mã nguồn mở và dựa trên khái niệm OOP. Tôi đã đọc thêm một bài báo để biết thêm một số thông tin cập nhật http. //crbtech. in/Java-Training/makes-java-portable-programming-languages-like-c/

Arshi Bano

Bài viết hay & Cảm ơn đã chia sẻ. Java là một ngôn ngữ lập trình rất mạnh, mã nguồn mở và dựa trên khái niệm OOP. Tôi đã đọc thêm một bài báo để biết thêm một số thông tin cập nhật http. //crbtech. in/Java-Training/makes-java-portable-programming-languages-like-c/

Samagra Singh Tomar

Bài viết hay về C. Đặc biệt đối với những người nghĩ rằng C khá cơ bản & không có nhiều việc phải làm. Cảm ơn rất nhiều

Samagra Singh Tomar

Bài viết hay về C. Đặc biệt đối với những người nghĩ rằng C khá cơ bản & không có nhiều việc phải làm. Cảm ơn rất nhiều

Marc Tremblay

Tương lai của phát triển phần mềm là lập trình song song. Chúng ta sẽ cần nhiều bộ xử lý song song để xây dựng phần mềm thông minh trong nhiều lĩnh vực. C và C++ là ngôn ngữ để xây dựng loại hệ thống đó. Khi bạn hiểu C, bạn thực sự hiểu cách máy tính, hệ điều hành và thuật toán hoạt động. Có lẽ, C sẽ vẫn ở đó trong 100 năm nữa

Marc Tremblay

Tương lai của phát triển phần mềm là lập trình song song. Chúng ta sẽ cần nhiều bộ xử lý song song để xây dựng phần mềm thông minh trong nhiều lĩnh vực. C và C++ là ngôn ngữ để xây dựng loại hệ thống đó. Khi bạn hiểu C, bạn thực sự hiểu cách máy tính, hệ điều hành và thuật toán hoạt động. Có lẽ, C sẽ vẫn ở đó trong 100 năm nữa

Kei Bekku

Bit không chính xác nhỏ ở đây. > Nhân iOS, Android và Windows Phone cũng được viết bằng C. Chúng chỉ là bản chuyển thể di động của các nhân Mac OS, Linux và Windows hiện có. Nhân của Android không phải là bản chuyển thể của nhân Linux, nó *là* nhân Linux

Kei Bekku

Bit không chính xác nhỏ ở đây. > Nhân iOS, Android và Windows Phone cũng được viết bằng C. Chúng chỉ là bản chuyển thể di động của các nhân Mac OS, Linux và Windows hiện có. Nhân của Android không phải là bản chuyển thể của nhân Linux, nó *là* nhân Linux

Mrunal Khatri

Có, vì ngôn ngữ C là cơ bản của lập trình và nó cũng hiệu quả. Vì vậy, theo tôi không có sự thay thế nào khác của nó. Cảm ơn

Mrunal Khatri

Có, vì ngôn ngữ C là cơ bản của lập trình và nó cũng hiệu quả. Vì vậy, theo tôi không có sự thay thế nào khác của nó. Cảm ơn

Shubham Chauhan

Đó là một bài viết tuyệt vời thưa ngài. Nó đã giúp tôi rất nhiều để biết về ngôn ngữ C. Tôi sắp hoàn thành P của mình. G. và muốn bắt đầu sự nghiệp của mình bằng ngôn ngữ c và c ++. Vui lòng cho tôi biết bắt đầu từ đâu. Rất nhiều người đã nói với tôi rằng không có nghề nghiệp nào trong ngôn ngữ C để tập trung vào bất kỳ ngôn ngữ nào khác nhưng ngôn ngữ C luôn thu hút sự chú ý của tôi. Tôi sẽ có nghĩa vụ bởi sự giúp đỡ của bạn. Email - shbhamchauhan@gmail. com TIA. . -]

Shubham Chauhan

Đó là một bài viết tuyệt vời thưa ngài. Nó đã giúp tôi rất nhiều để biết về ngôn ngữ C. Tôi sắp hoàn thành P của mình. G. và muốn bắt đầu sự nghiệp của mình bằng ngôn ngữ c và c ++. Vui lòng cho tôi biết bắt đầu từ đâu. Rất nhiều người đã nói với tôi rằng không có nghề nghiệp nào trong ngôn ngữ C để tập trung vào bất kỳ ngôn ngữ nào khác nhưng ngôn ngữ C luôn thu hút sự chú ý của tôi. Tôi sẽ có nghĩa vụ bởi sự giúp đỡ của bạn. Email - shbhamchauhan@gmail. com TIA. . -]

Nasim Huq

Bất kỳ ai cũng muốn hoàn thành công việc trên trình duyệt [thực. phát triển web] sử dụng c/C++ có thể kiểm tra liên kết sau https. // nhà phát triển. mozilla. org/en-US/docs/WebAssugging/C_to_wasm

Nasim Huq

Bất kỳ ai cũng muốn hoàn thành công việc trên trình duyệt [thực. phát triển web] sử dụng c/C++ có thể kiểm tra liên kết sau https. // nhà phát triển. mozilla. org/en-US/docs/WebAssugging/C_to_wasm

dịch vụ viết thuê luận văn tốt nhất

Vẫn còn nhiều lập trình viên hiện nay vẫn đang sử dụng ngôn ngữ lập trình C làm công cụ chính để thực hiện các dự án của họ. Có vẻ như tính năng của công cụ này không hề cũ và vẫn có khả năng cạnh tranh với những công cụ phổ biến hiện nay

dịch vụ viết thuê luận văn tốt nhất

Vẫn còn nhiều lập trình viên hiện nay vẫn đang sử dụng ngôn ngữ lập trình C làm công cụ chính để thực hiện các dự án của họ. Có vẻ như tính năng của công cụ này không hề cũ và vẫn có khả năng cạnh tranh với những công cụ phổ biến hiện nay

Mukesh Singh

Cảm ơn Daniel. . Như bạn đã nói với chúng tôi các ứng dụng của c cảm thấy tốt. Tôi nghĩ rằng tất cả các máy chủ web [APACHE, IIS. v.v.] và các giao thức [ví dụ TCP/IP, HTTP, FTP. v.v.] cũng được viết bằng c. mọi lập trình viên đều phải học c vì nó rõ ràng về logic lập trình và một khi bạn đã thành thạo về c thì các ngôn ngữ khác chỉ là một trò chơi trẻ con. tôi nghĩ c sẽ không bao giờ bước ra khỏi thế giới

Mukesh Singh

Cảm ơn Daniel. . Như bạn đã nói với chúng tôi các ứng dụng của c cảm thấy tốt. Tôi nghĩ rằng tất cả các máy chủ web [APACHE, IIS. v.v.] và các giao thức [ví dụ TCP/IP, HTTP, FTP. v.v.] cũng được viết bằng c. mọi lập trình viên đều phải học c vì nó rõ ràng về logic lập trình và một khi bạn đã thành thạo về c thì các ngôn ngữ khác chỉ là một trò chơi trẻ con. tôi nghĩ c sẽ không bao giờ bước ra khỏi thế giới

Rajesh Kazankodath

Điều tuyệt vời Daniel. Bạn nghĩ bao nhiêu phần trăm tất cả các mã được viết cho đến nay được phát triển bằng C? . Tuy nhiên, tôi chắc chắn rằng nếu bạn xem mã được thực thi tại bất kỳ thời điểm nào, thì phần trăm mã được phát triển bằng C sẽ cao hơn nhiều

Rajesh Kazankodath

Điều tuyệt vời Daniel. Bạn nghĩ bao nhiêu phần trăm tất cả các mã được viết cho đến nay được phát triển bằng C? . Tuy nhiên, tôi chắc chắn rằng nếu bạn xem mã được thực thi tại bất kỳ thời điểm nào, thì phần trăm mã được phát triển bằng C sẽ cao hơn nhiều

Lewis Cowles

Nếu chúng ta định mô phạm, thì nhân Android là phiên bản của Nhân Linux [thường là phiên bản cũ và lỗi thời, với trình điều khiển thường riêng biệt] sử dụng các đốm màu phần sụn nhị phân

Lewis Cowles

Nếu chúng ta định mô phạm, thì nhân Android là phiên bản của Nhân Linux [thường là phiên bản cũ và lỗi thời, với trình điều khiển thường riêng biệt] sử dụng các đốm màu phần sụn nhị phân

Buddhi Chaturanga

C và C++ , tôi

Chủ Đề