Soạn thảo, biên dịch và thực thi chương trình C
Bạn nên hoàn thành cài đặt và cấu hình môi trường phát triển theo hướng dẫn của bài học trước để có thể thực hành nội dung của bài học này.
-
Soạn thảo chương trình C
Một chương trình C thường bao gồm nhiều tập tin, được chia thành hai loại chính:
- Tập tin .h (header): Thường chứa khai báo hằng số, macro, định nghĩa kiểu dữ liệu, nguyên mẫu hàm (function prototypes), và đôi khi là khai báo extern cho biến toàn cục.
- Tập tin .c (source): Chứa mã nguồn thực thi, bao gồm các lệnh, khối lệnh và phần định nghĩa hàm (function implementation).
Trong lập trình C, soạn thảo là quá trình sử dụng trình soạn thảo để tạo hoặc chỉnh sửa các tập tin (.c, .h), công việc này được gọi là viết mã nguồn (coding). Nội dung của các tập tin này là các chỉ thị, câu lệnh, khối lệnh, v.v. được viết theo cú pháp của ngôn ngữ C nhằm mô tả các chức năng mà chương trình cần thực hiện. Đây là bước đầu tiên trước khi mã nguồn được biên dịch và liên kết để tạo ra chương trình thực thi.
Giả sử chúng ta cần viết một chương trình tính tổng hai số và in ra kết quả. Để soạn thảo chương trình, hãy làm theo các bước sau:
- Trong thư mục \source, tạo một tập tin đặt tên là main_thread.c
- Mở tập tin main_thread.c và nhập nội dung sau:
/** * @file main_thread.c * @brief Entry point of the program. * * @project LearnC * @version 1.0 * @author hoctotlamhay.vn */ #include<stdio.h> int main() { int x = 10; int y = 5; printf("Value of x: %d\n", x); printf("Value of y: %d\n", y); printf("Sum of x and y is %d\n", x + y); printf("Press Enter to exit!\n"); getchar(); return 0; }Chương trình trên sử dụng cấu trúc và một số thành phần của ngôn ngữ C, nếu bạn chưa biết cũng đừng lo lắng vì chúng ta sẽ thảo luận trong các bài học sau.
-
Biên dịch chương trình
Sau khi hoàn thành soạn thảo, chương trình cần được biên dịch từ mã nguồn sang mã máy; quá trình này thường trải qua nhiều bước, chẳng hạn như tiền biên dịch, biên dịch, hợp dịch, liên kết,v.v. và được thực hiện bởi trình biên dịch (tham khảo thêm tại địa chỉ Khái niệm cơ sở).
Mỗi môi trường phát triển thường có phương pháp biên dịch riêng, vì vậy bạn nên tham khảo tài liệu đi kèm của môi trường mình đang dùng.
Đối với cấu hình đã thiết lập ở bài trước, để biên dịch tập tin main_thread.c chúng ta có thể sử dụng một trong các phương pháp dưới đây:
-
Sử dụng tổ hợp phím Ctrl + Shift + B
Đây là phương pháp biên dịch đơn giản nhất; bạn chỉ cần nhấn tổ hợp phím Ctrl + Shift + B, nếu không có lỗi chúng ta sẽ nhận được tập tin LearnC.exe trong thư mục \build.
-
Biên dịch tự động khi gỡ lỗi
Trong tập tin launch.json ở bài trước, chúng ta đã thiết lập chế độ biên dịch tự động khi gỡ lỗi. Nhờ đó, mỗi khi thực hiện gỡ lỗi, chương trình sẽ tự động được biên dịch lại để đảm bảo mọi thay đổi trong mã nguồn đều được cập nhật.
Để chạy chương trình ở chế độ này, chúng ta chỉ cần nhấn phím F5. Chi tiết về chế độ gỡ lỗi và phương pháp gỡ lỗi sẽ được trình bày trong các bài học tiếp theo.
-
Biên dịch bằng gcc
Trong Visual Studio Code, chúng ta có thể biên dịch chương trình bằng cách sử dụng lệnh gcc trong cửa sổ Terminal. Tuy nhiên đây là phương pháp tương đối phức tạp đặc biệt là khi dự án có quy mô lớn.
Đối với ví dụ của chúng ta, hãy làm theo các bước sau:
- Mở cửa sổ Terminal (Ctrl + Shift + `).
- Chuyển đến thư mục chứa mã nguồn.
- Thực hiện lệnh biên dịch.
- Kết quả biên dịch.
cd D:\project\LearnC\sourceD:\project\LearnC\source gcc main_thread.c -o ../build/LearnC.exe
-
-
Thực thi chương trình
Một chương trình sau khi biên dịch thành công sẽ được chuyển sang mã máy và tạo ra một tập tin có phần mở rộng .exe (trong ví dụ của chúng ta là LearnC.exe).
Để chạy chương trình trực tiếp trong Visual Studio Code, bạn chỉ cần nhấn tổ hợp phím Ctrl + F5.
Nếu muốn chạy từ Windows Explorer, hãy mở tập tin LearnC.exe như một ứng dụng Windows thông thường.