Các số nhận dạng sau không có liên kết: số nhận dạng được khai báo là bất kỳ thứ gì ngoài đối tượng hoặc hàm; một định danh được khai báo là tham số hàm; một định danh phạm vi khối cho một đối tượng được khai báo không có bộ định danh lớp lưu trữ extern.Phạm vi liên kết phạm vi C tiêu chuẩn
{
static int a; //no linkage
}
Đối với một định danh khai báo với specifier extern lưu trữ hạng nhất trong một phạm vi trong đó một tuyên bố trước đó của nhận dạng đó là có thể nhìn thấy, nếu việc khai báo trước quy định cụ thể nội bộ hay bên ngoài liên kết, các liên kết của các định danh tại tuyên bố sau đó giống như liên kết được chỉ định tại tờ khai trước. Nếu không có khai báo trước, hoặc nếu khai báo trước chỉ định không có liên kết, thì số nhận dạng có liên kết bên ngoài.
{
static int a; //no linkage
extern int a; //a should get external linkage, no?
}
lỗi GCC: khai extern của một sau tuyên bố không có mối liên hệ
Ai đó có thể giải thích cho tôi tại sao tôi nhận được lỗi này?
Cảm ơn bạn
Có thể là ngữ nghĩa, "xác định không có mối liên kết" so với "quy định" không liên kết". Quảng cáo tự động trong trường hợp này nghe có vẻ điên rồ. –
Tôi không hiểu sự khác biệt. Bạn có thể xây dựng? – mindless