Trong đoạn mã sau, tại sao nhiều khai báo (và một định nghĩa) cho biến toàn cục "x" hoạt động tốt nhưng cùng không hoạt động với biến cục bộ "y" nằm trong hàm main()? 2 lỗi sau đây:Trong C, tại sao nhiều khai báo hoạt động tốt cho biến toàn cầu nhưng không hoạt động đối với biến cục bộ?
1) khai báo lại của 'y' không có mối liên hệ
2) tuyên bố trước đó của 'y' đã ở đây
Tại sao nó hiển thị lỗi cho biến cục bộ nhưng không toàn cầu biến Không chỉ cuốn sách của tôi, nhưng 2 liên kết sau đây từ diễn đàn này nêu rõ rằng chúng tôi có thể khai báo một biến nhiều lần (mặc dù chỉ xác định một lần).
Và vui lòng chăm sóc để giải thích những gì hiện các "không có mối liên kết" một phần của lỗi đầu tiên "khai báo lại của 'y' không có mối liên kết" nghĩa là gì? Liên kết gì và cho ai? Ở đâu sẽ một biến cục bộ được liên kết?
#include<stdio.h>
int x;
int x;
int x=303;
int main(void)
{
int y;
int y;
int y=776; //Works fine if above 2 declarations are removed!!
printf("The value of x is %d,and of y is %d",x,y);
}
Đọc http://en.wikipedia.org/wiki/Linker_%28computing%29 về liên kết & liên kết. Và cũng là cuốn sách của Levine http://www.iecc.com/linker/; do đó các biến cục bộ không được liên kết (vì chúng nằm trong khung gọi cục bộ, trên ngăn xếp). –
Nhưng nó cho thấy lỗi cho x cũng trong trình biên dịch của tôi. – Jeyamaran
@Jeyamaran bạn có thể đã sử dụng trình biên dịch C++. Đây là câu hỏi C. –