Cấu trúc chương trình C, danh sách từ khóa (keywords) trong ngôn ngữ C
- 27-02-2022
- Toanngo92
- 3 Comments
Ngôn ngữ lập trình C là một ngôn ngữ lập trình có phân biệt chữ hoa, thường, chúng ta kết hợp những từ khóa có sẵn, thông thường là các từ viết tắt của các từ tiếng Anh thông dụng và các cấu trúc được ngôn ngữ c định nghĩa, đi kèm với các tập ký tự, để ra lệnh cho máy tính thực th chương trình
Mục lục
Tập hợp những ký tự chữ cái alphabets, số, hoặc những ký tự đặc biệt có giá trị trong ngôn ngữ C.
Các ký tự Alphabets (A-Z bao gồm cả chữ hoa và chữ thường)
Uppercase: A-Z
Lowercase: a-z
Số (number)
0 1 2 3 4 5 6 7 8 9
Các ký tự đặc biệt (Special Characters)
, . _
( ) ; $ :
% [ ] # ?
' & { } "
^ ! * / |
- ~ +
Bảng từ khóa trong C
Từ khóa (keyword) là những từ được ngôn ngữ C định nghĩa sẵn, mang ngữ nghĩa rõ ràng và được sử dụng cho những mục đích xác định. Bạn không thể sử dụng nó như một tài nguyên (biến, hằng số – sẽ được nói tới ở các bài sau) nên buộc phải ghi nhớ để tránh gặp tình huống khai báo nội dung trùng lặp với từ khóa gây khó hiểu cho chương trình ( máy tính không hiẻu được). Có 32 từ khóa trong ngôn ngữ lập trình C:
auto
break
case
char
const
continue
default
do
int
long
register
return
short
signed
sizeof
static
struct
switch
typeof
union
unsigned
void
volatile
while
double
else
enum
extern
float
for
goto
if
Lưu ý: Tất cả các từ khóa trong C đều viết bằng chữ thường.
Ý nghĩa cơ bản của những từ khóa:
auto, signed, const, extern, register, unsigned – Sử dụng trong tình huống khai báo tài nguyrrn (biến).
return – Từ khóa được sử dụng để (chương trình, hàm) để trả về một giá trị.
continue – Thường được sử dụng đi kèm các vòng lặp for, while, do-while, khi gặp lệnh này trong thân vòng lặp, chương trình sẽ chuyển sang thực hiện một vòng lặp mới và bỏ qua việc thực hiện các câu lệnh nằm sau lệnh này trong thân vòng lặp.
enum – kiểu dữ liệu do người dùng tự định nghĩa. Thường được sử dụng để gán các tên cho các hằng số, giúp một chương trình dễ đọc, code gọn hơn và dễ bảo trì.
sizeof – Trả về kích thước (byte) của vùng nhớ.
struct, typedef – Cả 2 từ khóa này được sử trong cấu trúc.
union – Cho phép tạo các kiểu dữ liệu khác nhau trong cùng một vùng nhớ.
volatile – Tránh các lỗi phát sinh ngoài ý muốn khi tính năng optimization của compiler được bật. Volatile để chỉ một biến có thể bị thay đổi giá trị một cách “bất thường” (thường sử dụng trong lập trình nhúng).
Cấu trúc chương trình C
khái niệm câu lệnh
Trong ngôn ngữ lập trình, chúng ta sử dụng câu lệnh để thực hiện các thao tác xử lý chương trình trong máy tính, một chương trình sẽ bao gồm một tập hợp nhiều câu lệnh khác nhau. Ngôn ngữ lập trình C không quan tâm tới việc bạn xuống dòng hoặc khoảng cách các thành phần bên trong câu lệnh. Mỗi câu lệnh phân tách nhau bởi đấu “;”. Ví dụ
int i;
i
= 5;
// cú pháp vẫn đúng
int a
a = 6;
// sai vì câu lệnh khai báo chưa có kết thúc bằng dấu ;
Khái niệm hàm (function)
Hàm là một nhóm các câu lệnh cùng thực hiện một tác vụ . Mọi chương trình C đều có ít nhất một hàm, đó là hàm main(), và tất cả các chương trình đều có thể định nghĩa các hàm bổ sung.
xét đoạn mã sau:
#include <stdio.h>
#include <stdlib.h>
int main(void){
return 0;
}
Ở đoạn mã này, chúng ta đang thực hiện công việc khai báo ra một hàm có tên là main(), và đây là một hàm đặc biệt, khi chương trình C bắt đầu chạy, hàm main sẽ luôn được tìm tới và thực thi đầu tiên, điều đó có nghĩa, không quan tâm đoạn mã bạn dài bao nhiêu, có bao nhiêu hàm, nội dung mã nguồn là gì, hàm main sẽ luôn được hệ điều hành tìm tới và trao quyền thực thi ngay khi chương trình bắt đầu chạy. Đứng sau tên hàm luôn luôn là một dấu ngoặc đơn (), trong dấu ngoặc đơn có thể có hoặc không có tham số (parameter)
Dấu phân tách (Delimiters)
Quay lại đoạn mã phía trên và quan sát, sau dấu () chúng ta thấy có một cặp dấu ngoặc nhọn (curly bracket) {}, đây là kí hiệu đánh dấu cho việc bắt đầu khai báo hàm, hiểu giống như việc mô tả một tập hợp các tác vụ được thực thi, và các tác vụ này gói gọn trong một tên mô tả, việc khai báo hàm chính là mô tả các tác vụ cần thực thi để máy tính hiểu và khi nào chúng ta cần thực thi, chúng ta chỉ cần gọi tên tác vụ đó ra, các công việc bên trong sẽ được lần lượt thực thi cho tới khi có tín hiệu kết thúc ( dấu ngoặc mở “{“ là báo hiệu bắt đầu các tác vụ, dấu ngoặc đóng “}” báo hiệu cho việc kết thúc các tác vụ)
Chú thích (Comments)
Khái niệm này bạn sẽ rất thường gặp trong các hầu hết các ngôn ngữ lập trình khác, nếu chúng ta muốn chú thích ý nghĩa một đoạn mã, hay ghi chú một điều gì trong code, hãy sử dụng khái niệm này. Cú pháp của comment trong lập trình C như sau:
// comment inline
/*
comments multiple lines
comments multiple lines
comments multiple lines
*/
Thư viện C (Library)
Trình biên dịch C ( cách hiểu như một quyển từ điển giúp biên dịch từ đoạn mã chúng ta viết thành ngôn ngữ máy tính có thể hiểu và thực thi) có chứa rất nhiều hàm chuẩn, các đoạn mã đã được định nghĩa sẵn và có thể sử dụng chung, thậm chí phát triển thêm, khi lập trình, chúng ta sử dụng thư viện như một giải pháp để có thể lấy những hàm, những định nghĩa đã có sẵn phục vụ cho việc phát triển ứng dụng mà không cần quá quan tâm tầng sâu phía dưới là gì, đơn giản giống như việc nói với máy tính: hey, in cho tôi đoạn văn bản này ra nhé. Máy tính sẽ làm việc đó cho bạn và công việc in văn bản, máy tính đã định nghĩa sẵn trong từ điển, bạn chỉ nhảy vào từ điển và đọc từ đó lên để máy tính làm theo mà thôi.
Quy trình biên dịch và thực thi mã nguồn trong C
1.Tiền xử lý
Chương trình C (mã nguồn) được gửi đến bộ tiền xử lý (preprocessor) trước. Bộ tiền xử lý có trách nhiệm chuyển đổi các chỉ thị của bộ tiền xử lý thành các giá trị tương ứng của chúng. Bộ tiền xử lý tạo ra một mã nguồn mở rộng.
2. Chuyển mã nguồn thành hợp ngữ
Mã nguồn mở rộng được gửi đến trình biên dịch để biên dịch mã và chuyển nó thành hợp ngữ (assembly).
3) Chuyển mã nguồn thành đối tượng
Mã hợp ngữ được gửi đến trình hợp dịch để lắp ráp mã và chuyển đổi nó thành mã đối tượng. Bây giờ một tệp simple.obj được tạo.
4) Liên kết với thư viện và chuyển thành mã thực thi
Mã đối tượng được gửi đến trình liên kết liên kết nó với thư viện, chẳng hạn như các tệp tiêu đề. Sau đó, nó được chuyển đổi thành mã thực thi. Một tệp simple.exe được tạo.
5) Thực thi chương trình
Mã thực thi được gửi đến trình nạp (loader) sẽ tải nó vào bộ nhớ và sau đó nó được thực thi. Sau khi thực thi, đầu ra được gửi đến bàn điều khiển.
Nếu bạn đọc tới đây, chúng ta đã có thể bắt đầu đi vào từng phần kiến thức cụ thể được rồi !
3 Comments