Ví dụ abc.c chứa một biếnBạn có thể biến một biến #define trong một tệp khác không?
#define NAME "supreeth"
thể extern biến NAME
trong def.c?
Ví dụ abc.c chứa một biếnBạn có thể biến một biến #define trong một tệp khác không?
#define NAME "supreeth"
thể extern biến NAME
trong def.c?
Nếu bạn có #define NAME "supreeth"
trong abc.c, bạn chắc chắn có thể có một biến bên ngoài cùng tên trong một tệp khác def.c
, điều này cũng liên quan đến trình biên dịch. Nếu bạn ngụ ý một số loại phụ thuộc giữa hai điều này, sự phụ thuộc/liên kết đó sẽ không xảy ra. Rõ ràng nó là khó hiểu và một ý tưởng tồi để làm một cái gì đó như thế này.
Bạn không thể sử dụng extern
có macro. nhưng nếu bạn muốn macro của bạn nhìn thấy bởi nhiều file C
đặt định nghĩa macro của bạn
#define NAME "supreeth"
trong một tập tin tiêu đề như def.h
sau đó bao gồm bạn def.h tại của bạn Mã C và sau đó bạn có thể sử dụng macro của mình trong tệp C trong tất cả các tệp C khác nếu bạn bao gồm def.h
Có thể làm gì? Không có biến và khái niệm 'extern' không áp dụng. –
Tôi không có nghĩa là sử dụng extern tôi ean ông có thể xác định vĩ mô của mình trong tập tin tiêu đề sau đó ông có thể nhìn thấy nó từ các tập tin C của mình. có thể tôi phải cụ thể hơn, tôi sẽ cập nhật câu trả lời của mình – MOHAMED
Trong mã của bạn NAME
không phải là biến. Đó là ký hiệu tiền xử lý, có nghĩa là văn bản NAME
sẽ được thay thế ở mọi nơi trong mục nhập bằng chuỗi "supreeth"
. Điều này xảy ra cho mỗi tập tin, do đó, nó không có ý nghĩa để nói về nó là "bên ngoài".
Nếu một tệp C cụ thể được biên dịch mà không có #define
, mọi việc sử dụng NAME
sẽ vẫn giữ nguyên.
Định nghĩa là chỉ thị tiền xử lý. Nó được thay thế nội dòng khi biên dịch mã. Bạn sẽ cần phải xác định nó trong một tiêu đề (bao gồm) tập tin. –