Tài trợ bài viết này và giới thiệu dịch vụ, sản phẩm, thương hiệu, nhu cầu tuyển dụng của doanh nghiệp đến với cộng đồng.
La Kiến Vinh Cách thức tạo ra file sau khi preprocess một file .cpp hoặc .c với Visual Studio, sau khi tạo ra ta có thể khảo sát nhằm xem xét việc hoạt động của các Directive trong C/C++ và có thể làm rõ hơn vai trò của các Directive như #include, #define, #if.
Nội dung bài viết

Giới thiệu

Qua bài viết Preprocessor Và #include Directive các bạn sẽ biết về khái niệm preprocess, với bài viết này, tôi hướng dẫn các bạn cách thức để khảo sát các file đã được preprocess với Visual Studio.

Đối tượng hướng đến

Dành cho các bạn đã biết về preprocess với C/C++ và biết sử dụng Visual Studio.

Môi trường

Visual Studio 2013 Community trên Windows 8.1 để thực hiện bài hướng dẫn này, các môi trường khác có thể tương tự hoặc khác đôi chút.

Hướng dẫn

Tạo một project với template là Empty Project (ngôn ngữ C/C++). Tạo một file để viết mã C++ giả sử stdio_math.cpp.

#include <stdio.h>

#define MAX 10
#define SUM(a, b) ((a)+(b))

void main()
{
	int a = MAX;
	int b = SUM(1, 8*6) * 7;
}

Để Visual Studio tạo ra file preprocess cho ta, ta cần chỉnh sửa một thông số trong Properties của project. File được tạo ra sẽ có tên trùng với tên của file.c hoặc file.cpp và có phần mở rộng là .i, trong trường hợp này file sau khi preprocess sẽ có tên là stdio_math.i vì file chứa mã nguồn của ta có tên là stdio_math.cpp.

Khi đã mở cửa sổ Properties của project, ta chọn C/C++ → Command Line → Tại ô Additional Options ta gõ vào /P (lựa chọn này có nghĩa là đưa toàn bộ preprocess source vào file).

Sau khi đã gõ /P xong, ta có thể Build Project để xem thử kết quả, cần lưu ý là, ta sẽ thất bại ở quá trình Link vì toàn bộ file.cpp/.c chỉ để preprocess ra file.i. Bây giờ ta có thể vào thư mục chứa project để tìm các file.i (trong trường hợp này là stdio_math.i để tham khảo kết quả. Bạn có thể sử dụng Notepad, Notepad++ (hay bất kỳ text-editor) để mở các file.i này.

Ngoài việc có thể sử dụng Command Line như trên, ta có thể dùng giao diện đồ họa, tuy nhiên tôi không đề cập trong bài viết này, vì dùng Command Line đơn giản hơn. Bạn có thể tự tìm hiểu trong Tab C/C++ > Preprocessor.

THẢO LUẬN
ĐÓNG