C++ __FILE__ vĩ mô

C File Vi Mo



Các macro là một số đoạn mã trong một số tập lệnh có một số tên cụ thể. Khi bất kỳ macro nào được thực thi, mã đằng sau chúng sẽ được thực thi để thực hiện một tác vụ nhất định. Tương tự như vậy, __FILE__ là một macro được sử dụng trong ngôn ngữ C++ để lấy đường dẫn đến một tệp cụ thể. Vì vậy, hôm nay trong hướng dẫn này, chúng ta sẽ thảo luận về hoạt động của macro C++ __FILE__.

Ví dụ 01:

Hãy lấy ví dụ đầu tiên về __FILE__ macro trong C++ bằng cách khởi động ứng dụng bảng điều khiển đầu cuối. Bạn có thể đang sử dụng phím tắt “Ctrl+Alt+T” để làm như vậy. Một cách khác để mở trình bao là sử dụng menu Khu vực hoạt động nếu bạn quên phím tắt. Sau khi bảng điều khiển đầu cuối được khởi chạy trên màn hình của bạn, hãy thử tạo một tệp C++ mới để viết mã trong đó. Có thể tạo tệp bằng truy vấn “chạm” đơn giản, như minh họa trong hình ảnh đính kèm bên dưới. Tên của một tệp mới được tạo phải được cung cấp bằng từ khóa 'chạm'.







Phải có một số trình chỉnh sửa được cài đặt trên hệ thống Linux Ubuntu 20.04 của bạn để sử dụng nó để mã hóa và mở các tệp mới được tạo. Các trình soạn thảo được đề xuất nhiều nhất được người dùng Linux biết đến rộng rãi là trình soạn thảo GNU Nano và Vim. Ngoài ra, trình soạn thảo văn bản cũng có thể được sử dụng trong trường hợp cả hai trình soạn thảo được đề cập trước đó đều không hoạt động. Vì vậy, chúng tôi đã cài đặt trình chỉnh sửa GNU Nano. Vì vậy, chúng tôi sẽ sử dụng nó để mở và chỉnh sửa tệp để tạo mã. Sử dụng từ khóa “nano” cùng với tên tệp để trình chỉnh sửa hoạt động.





Bây giờ, tệp C++ mới tạo macro.cc đã sẵn sàng để viết mã trong trình chỉnh sửa. Hãy bắt đầu triển khai mã C++ khi chúng tôi triển khai bài viết này để xem hoạt động của __FILE__ macro. Chúng tôi đã bắt đầu mã C++ của mình bằng cách thêm tiêu đề đầu vào-đầu ra tiêu chuẩn ở đầu mã. Từ khóa “bao gồm” đã được sử dụng với dấu thăng để làm như vậy. Không có tiêu đề này, đầu vào và đầu ra của mã C++ sẽ không hoạt động tại bàn điều khiển khi biên dịch và thực thi.





Phương thức main() là trụ cột cơ bản của mã của chúng ta khi quá trình thực thi bắt đầu từ nó và kết thúc trong đó. Trong phương thức main(), công việc thực tế sẽ được thực hiện. Chúng tôi đã sử dụng một mã dòng đơn trong phương thức main() của mình để mô tả chức năng của __FILE__ macro. Vì vậy, câu lệnh printf đã được sử dụng ở đây, lấy hai giá trị làm đối số, tức là chuỗi lấy tên tệp và hàm macro.

Macro __FILE__ được sử dụng ở đây để lấy đường dẫn tệp hiện tại hoặc tên của nó. Trong khi “%S” được sử dụng để in ra đường dẫn hiện tại của tệp hoặc tên của tệp trong một chuỗi. Bạn phải lưu mã của mình trước khi thực thi với sự trợ giúp của phím tắt “Ctrl+S”. Bây giờ mã đã được lưu, hãy thử quay lại thiết bị đầu cuối shell bằng phím tắt “Ctrl + X”.



Khi chúng ta hoàn thành mã C++ cho __FILE__ macro, hãy bắt đầu biên dịch mã C++. Để biên dịch, chúng tôi đã cài đặt trình biên dịch g++ để biên dịch mã C++. Vì vậy, trình biên dịch g ++ đã được sử dụng trong thiết bị đầu cuối để biên dịch tệp “macro.cc”. Khi biên dịch, nó không trả về gì cả, điều này cho biết rằng mã C++ nằm trong tệp macro.cc là đúng về mặt ngữ nghĩa. Sau khi biên dịch, đến lượt thực thi mã. Để chạy tệp mã, chúng tôi có xu hướng sử dụng truy vấn đơn giản “/aout”. Khi chạy tệp macro.cc, chúng tôi đã nhận được tên của tệp như đổi lại. Đây là cách macro C++ __FILE__ hoạt động.

Ví dụ 02:

Hãy lấy một ví dụ khác để đi sâu xem xét chức năng của C++ __FILE__ macro trong hệ thống Ubuntu 20.04. Như chúng ta đã thấy cách hoạt động của macro C++ __FILE__ khi nó được sử dụng để tìm nạp đường dẫn tệp của một tệp mà nó đã được đề cập.

Bây giờ, chúng ta sẽ sử dụng macro C++ __FILE__ để lấy đường dẫn tệp hoặc tên của tệp khác với tệp chúng tôi hiện đang làm việc. Vì vậy, chúng tôi đã mở cùng một tệp macro.cc trong trình chỉnh sửa GNU Nano để cập nhật mã. Chúng tôi đã thêm tiêu đề đầu vào-đầu ra tiêu chuẩn với từ khóa bao gồm và khởi tạo hàm main() với kiểu trả về số nguyên.

Trong phương thức main(), câu lệnh in đầu tiên giống như câu lệnh cũ để lấy đường dẫn tệp hiện tại mà chúng ta hiện đang làm việc. Sau đó, chúng tôi đã sử dụng từ khóa #line với tên tệp khác, tức là “new.txt” ở dòng tiếp theo. Điều này là để chỉ định tệp khác với tệp hiện tại mà chúng tôi sẽ lấy tên hoặc đường dẫn của nó. Câu lệnh printf tiếp theo đã được sử dụng để in ra đường dẫn của tệp “new.txt” với sự trợ giúp của macro C++ __FILE__. Lưu mã mới cập nhật của bạn để tránh bất kỳ sự bất tiện nào tại thời điểm biên dịch. Sử dụng “Ctrl + S” để làm như vậy.

Sau khi lưu tệp đã cập nhật, hãy thoát tệp qua “Ctrl + X” từ bàn phím của bạn. Bây giờ, chúng tôi đã trở lại màn hình vỏ.

Hãy biên dịch tệp cập nhật. Sử dụng trình biên dịch g++ để làm như vậy với tên của tệp macro.cc. Sau khi biên dịch thành công, hãy chạy mã bằng lệnh “./a.out” trong bảng điều khiển. Đầu ra hiển thị đường dẫn đến tệp hiện tại trước, sau đó đường dẫn đến tệp khác, “new.txt” đã được hiển thị trên màn hình trình bao. Hãy xem việc sử dụng macro __FILE__ để hiển thị đường dẫn tệp trên trình bao dễ dàng như thế nào.

Ví dụ 03:

Chúng ta hãy xem macro __LINE__ cùng với macro __FILE__ trong C++. Macro __LINE__ sẽ hiển thị số dòng của tệp mà macro đã được sử dụng. Vì vậy, hãy mở cùng một tệp và cập nhật cả hai câu lệnh printf. Trước macro C++ __LINE__, chúng tôi đã thêm macro C++ __LINE__. __LINE__macro này đang nhận số dòng của tệp hiện tại trong đó __FILE__ xuất hiện trước. Trong khi macro __LINE__ tiếp theo sẽ lấy số dòng đầu tiên của tệp khác vì chúng tôi đã đề cập đến số dòng có tên tệp trong mã.

Sau khi lưu và thoát tệp, chúng tôi đã quay lại thiết bị đầu cuối trình bao. Chúng tôi đang sử dụng cùng một lệnh g++ để biên dịch mã tệp C++ macro.cc. Quá trình biên dịch thành công dẫn đến lệnh thực thi. Bây giờ, lệnh “./a.out” được sử dụng ở đây để làm như vậy. Quá trình thực thi cho chúng ta biết rằng tệp đầu tiên, tức là tệp hiện tại ở dòng 3, trong khi macro __FILE__ nằm trên dòng đầu tiên của tệp khác được đề cập trong mã.

Sự kết luận:

Bài viết này chứa định nghĩa về macro và thảo luận về cách sử dụng macro C++ __FILE__ trong hệ thống Ubuntu 20.04. Macro C++ __LINE__ cũng đã được thảo luận trong một số ví dụ để minh họa thêm về hoạt động của macro C++ __FILE__. Tóm lại, chúng tôi rất hy vọng rằng bài viết này sẽ giúp bạn sử dụng __FILE__macro C++ một cách tốt nhất.