Bắt đầu với C, một ngôn ngữ lập trình cơ bản
C có lẽ là ngôn ngữ lập trình được biết đến rộng rãi nhất. Nó được sử dụng làm ngôn ngữ tham khảo cho các khóa học khoa học máy tính trên toàn thế giới và có lẽ nó là ngôn ngữ mà mọi người học nhiều nhất ở trường cùng với Python và Java.
Tôi nhớ nó là ngôn ngữ lập trình thứ hai của tôi sau Pascal.
C không chỉ là thứ sinh viên dùng để học lập trình. Nó không phải là một ngôn ngữ học thuật. Và tôi có thể nói rằng nó không phải là ngôn ngữ dễ nhất, bởi vì C là một ngôn ngữ lập trình cấp thấp.
Ngày nay, C được sử dụng rộng rãi trong các thiết bị nhúng và nó cung cấp năng lượng cho hầu hết các máy chủ Internet, được xây dựng bằng Linux. Nhân Linux được xây dựng bằng C, và điều này cũng có nghĩa là C cung cấp năng lượng cho lõi của tất cả các thiết bị Android. Chúng ta có thể nói rằng mã C chạy một phần tốt của toàn bộ thế giới. Ngay bây giờ. Khá đáng chú ý.
Khi nó được tạo ra, C được coi là một ngôn ngữ cấp cao, vì nó có thể di động qua các máy. Hôm nay, chúng tôi đã cho rằng chúng tôi có thể chạy một chương trình được viết trên máy Mac trên Windows hoặc Linux, có lẽ bằng cách sử dụng Node.js hoặc Python. Ngày xưa, điều này hoàn toàn không phải như vậy. Những gì C mang lại cho bảng là một ngôn ngữ đơn giản để thực hiện, có một trình biên dịch có thể dễ dàng chuyển sang các máy khác nhau.
Tôi đã nói trình biên dịch: C là một ngôn ngữ lập trình biên dịch, giống như Go, Java, Swift hoặc Rust. Các ngôn ngữ lập trình phổ biến khác như Python, Ruby hoặc JavaScript đều được thông dịch. Sự khác biệt là nhất quán: một ngôn ngữ biên dịch tạo ra một tệp nhị phân có thể được thực thi và phân phối trực tiếp.
C không phải là rác được thu gom. Điều này có nghĩa là chúng ta phải tự quản lý bộ nhớ. Đó là một nhiệm vụ phức tạp và đòi hỏi nhiều sự chú ý để ngăn chặn lỗi, nhưng nó cũng là điều khiến C trở nên lý tưởng để viết các chương trình cho các thiết bị nhúng như Arduino.
C không giấu sự phức tạp và khả năng của máy bên dưới. Bạn có rất nhiều quyền lực, một khi bạn biết mình có thể làm gì.
Tôi muốn giới thiệu chương trình C đầu tiên ngay bây giờ, chương trình mà chúng tôi sẽ gọi là “Hello, World!”
chào c
#include <stdio.h>
int main(void) {
printf("Hello, World!");
}
Hãy mô tả mã nguồn chương trình: trước tiên chúng ta nhậpstdio
thư viện (tên viết tắt của thư viện đầu vào-đầu ra tiêu chuẩn).
Thư viện này cho phép chúng ta truy cập vào các chức năng nhập / xuất.
C là một ngôn ngữ rất nhỏ trong cốt lõi của nó và bất cứ thứ gì không phải là một phần của lõi đều được cung cấp bởi các thư viện. Một số thư viện trong số đó được xây dựng bởi các lập trình viên bình thường và có sẵn cho những người khác sử dụng. Một số thư viện khác được tích hợp sẵn trong trình biên dịch. Giốngstdio
và những người khác.
stdio
là thư viện cung cấpprintf()
chức năng.
Hàm này được bao bọc thành mộtmain()
chức năng. Cácmain()
hàm là điểm đầu vào của bất kỳ chương trình C nào.
Nhưng dù sao thì một hàm là gì?
Một hàm là một quy trình nhận một hoặc nhiều đối số và trả về một giá trị duy nhất.
Trong trường hợpmain()
, hàm không nhận được đối số và trả về một số nguyên. Chúng tôi xác định rằng bằng cách sử dụngvoid
từ khóa cho đối số vàint
từ khóa cho giá trị trả về.
Hàm có một phần thân, được bao bọc trong dấu ngoặc nhọn và bên trong phần thân, chúng ta có tất cả mã mà hàm cần để thực hiện các hoạt động của nó.
Cácprintf()
chức năng được viết khác nhau, như bạn có thể thấy. Nó không có giá trị trả về được xác định và chúng tôi chuyển một chuỗi, được bao bọc trong dấu ngoặc kép. Chúng tôi không chỉ định loại đối số.
Đó là bởi vì đây là một lệnh gọi hàm. Ở một nơi nào đó, bên trongstdio
thư viện,printf
được định nghĩa là
int printf(const char *format, ...);
Bạn không cần phải hiểu điều này có nghĩa là gì bây giờ, nhưng tóm lại, đây là định nghĩa và khi chúng ta gọiprintf("Hello, World!");
, đó là nơi chạy hàm.
Cácmain()
chức năng chúng tôi đã xác định ở trên:
#include <stdio.h>
int main(void) {
printf("Hello, World!");
}
sẽ được chạy bởi hệ điều hành khi chương trình được thực thi.
Làm thế nào để chúng tôi thực hiện một chương trình C?
Như đã đề cập, C là một ngôn ngữ biên dịch. Để chạy chương trình trước tiên chúng ta phải biên dịch nó. Mọi máy tính chạy hệ điều hành Linux hoặc macOS đều đã có sẵn trình biên dịch C. Đối với Windows, bạn có thể sử dụng Hệ thống con Windows dành cho Linux (WSL).
Trong mọi trường hợp, khi mở cửa sổ dòng lệnh, bạn có thể nhậpgcc
và lệnh này sẽ trả về cho bạn một lỗi nói rằng bạn không chỉ định bất kỳ tệp nào:
Tốt đấy. Nó có nghĩa là trình biên dịch C ở đó và chúng ta có thể bắt đầu sử dụng nó.
Bây giờ gõ chương trình trên vào mộthello.c
tập tin. Bạn có thể sử dụng bất kỳ trình soạn thảo nào, nhưng để đơn giản hơn, tôi sẽ sử dụngnano
trình soạn thảo trong dòng lệnh:
Nhập chương trình:
Bây giờ bấmctrl-X
để thoát:
Xác nhận bằng cách nhấny
, sau đó nhấn enter để xác nhận tên tệp:
Vậy là xong, bây giờ chúng ta sẽ quay lại terminal:
Bây giờ gõ
gcc hello.c -o hello
Chương trình sẽ không cung cấp cho bạn lỗi:
nhưng nó nên tạo ra mộthello
có thể thực thi được. Bây giờ gõ
./hello
để chạy nó:
Tôi thêm trước
./
vào tên chương trình, để cho thiết bị đầu cuối biết rằng lệnh nằm trong thư mục hiện tại
Tuyệt vời!
Bây giờ nếu bạn gọils -al hello
, bạn có thể thấy rằng chương trình chỉ có dung lượng 12KB:
Đây là một trong những ưu điểm của C: nó được tối ưu hóa rất cao và đây cũng là một trong những lý do nó tốt cho các thiết bị nhúng có số lượng tài nguyên rất hạn chế.
Kiểm tra một số hướng dẫn khác của tôi về C:
- Các biến và loại
- Hằng số
- Các nhà khai thác
- Điều kiện
- Vòng lặp
- Con trỏ
- Chức năng
- Mảng
- Dây
- Đầu ra đầu vào
- Loại định nghĩa
- Các loại được liệt kê
- Cấu trúc
- Tệp tiêu đề
- Bộ tiền xử lý C
Tải xuống miễn phí của tôiSổ tay C
Các hướng dẫn khác về tiếng clang:
- Giới thiệu về ngôn ngữ lập trình C
- C Các biến và kiểu
- Hằng số C
- Nhà điều hành C
- C Điều kiện
- Cách làm việc với các vòng lặp trong C
- Giới thiệu về mảng C
- Cách xác định độ dài của mảng trong C
- Giới thiệu về chuỗi C
- Cách tìm độ dài của một chuỗi trong C
- Giới thiệu về con trỏ C
- Vòng qua một mảng với C
- Booleans trong C
- Giới thiệu về các hàm C
- Cách sử dụng NULL trong C
- Các khái niệm I / O cơ bản trong C
- Dấu ngoặc kép so với dấu ngoặc kép trong C
- Cách trả về một chuỗi từ một hàm C
- Cách giải quyết cảnh báo hàm thư viện khai báo ngầm trong C
- Cách kiểm tra giá trị ký tự trong C
- Cách in ký tự phần trăm bằng cách sử dụng `printf () 'trong C
- Công cụ bổ nghĩa và công cụ chuyển đổi C
- Cách truy cập các tham số dòng lệnh trong C
- Phạm vi của các biến trong C
- Bạn có thể lồng các hàm trong C không?
- Biến tĩnh trong C
- C Biến toàn cục
- Từ khóa typedef trong C
- C Các loại được liệt kê
- C cấu trúc
- Tệp tiêu đề C
- Bộ tiền xử lý C