Hôm nay tôi bắt đầu sử dụng MPLAB X để lập trình PIC của mình và tìm thấy một mẫu mã, với nhiều tệp và điểm để điền mã. Trước khi tôi có một tập tin duy nhất với mã của tôi trong đó. Trong mẫu này, nơi tôi phải đặt các bit Cấu hình của mình, có văn bản sau:
/* TODO Fill in your config bits here. Remove #if 0 to embed config words. */
#if 0
/* General syntax for configuration word 1 - Check your device .h file
for an up to date listing of available macros.*/
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF);
/* If the device has multiple configuration words, the second macro defines
the second configuration word. Again check your device .h file
for an up to date listing of available macros. */
__CONFIG(WRT_OFF & PLLEN_OFF & STVREN_OFF & BORV_19 & LVP_OFF);
#endif
Tôi không thực sự hiểu "Loại bỏ #if 0 để nhúng các từ cấu hình." có nghĩa là ... Đây là một cái gì đó thực sự đơn giản. Tôi đã thử googling và tìm kiếm hướng dẫn trình biên dịch, nhưng không thu được kết quả tốt. Từ những gì tôi có thể hiểu, mã ở giữa #if 0 và #endif không bao giờ được biên dịch. Điều này có nghĩa là gì? Nó có liên quan gì đến việc thiết lập các bit cấu hình trong mã so với sau đó không?
/* */
không lồng nhau, vì vậy nếu bạn bao quanh một khối lớn mã/* */
đã có một/* */
nhận xét bên trong nó, toàn bộ điều sẽ không nhận xét chính xác. Mặc dù vậy, một cách tiếp cận sạch hơn đối với thư viện này sẽ được sử dụng#if defined EMBED_CONFIG_WORDS
thay vì#if 0
và sau đó (có thể trong một tệp cấu hình riêng biệt hoặc một cái gì đó) có một dòng như//#define EMBED_CONFIG_WORDS
với một bình luận có nội dung "bỏ dòng này để cho phép nhúng các từ cấu hình."