PDA

View Full Version : Các cao thủ giải thích cho em


tungnh
03-04-2009, 10:35 PM
Khi lập trình ứng dụng, liên kết các file.c với các hàm .h em nhận thấy răng sử dụng biến toàn cục thường "ổn đinh " hơn là biến cục bộ , ví dụ thế này :chương trình viết tin nhắn ( với keypad và LCD , dspic) em khai bào biến ValueKey là biến cục bộ trong hàm quét phím. Với mội ký tự nhận được từ bàn phim , cho luu vào mảng được khai báo là biến toàn cục , sau đó hiển thị mảng ký tự đó ra LCD thì em nhận thấy rằng LCD có lúc hiển thị được , có lúc không. Còn nếu như khai báo biến ValueKey là biến toàn cục thì LCD lúc nào cũng hiện thị đúng.
Còn một vài vd khác cũng chứng minh rằng nên khai báo biến sử dụng trong các chương trình có nhiều file.c là biến toàn cục.
Mong các cao thủ thử phân tích xem.

cskiller
04-04-2009, 10:16 AM
Bạn mô tả vậy là chưa rõ ràng vì không có code mẫu dẫn chứng.
Thực sự trong C thì việc sử dụng tham trị đến biến cục bộ hay toàn cục chẳng khác gì nhau cả, vì tham trị là tực hiện copy bản sao. Chỉ có vấn đề xảy ra khi biến toàn cục thực hiện tham chiếu đến 1 biến cục bộ(như gán con trỏ, định địa chỉ theo biến cục bộ) thì mới có vấn đề, vì biến cục bộ được cấp phát động mỗi lần hàm thực thi và bị hủy khi hàm kết thúc.

tungnh
04-04-2009, 01:20 PM
Bạn mô tả vậy là chưa rõ ràng vì không có code mẫu dẫn chứng.
Thực sự trong C thì việc sử dụng tham trị đến biến cục bộ hay toàn cục chẳng khác gì nhau cả, vì tham trị là tực hiện copy bản sao. Chỉ có vấn đề xảy ra khi biến toàn cục thực hiện tham chiếu đến 1 biến cục bộ(như gán con trỏ, định địa chỉ theo biến cục bộ) thì mới có vấn đề, vì biến cục bộ được cấp phát động mỗi lần hàm thực thi và bị hủy khi hàm kết thúc.
Thực sự thì mình cũng nghĩ giống bạn, tuy nhiên mình đã làm tương đối nhiều các ứng dụng và minh rút ra kết luận như vậy, mình ko hiểu tại sao . Vì một vài lý do nên mình không tiện up code.
Có ai gặp trường hợp giống mình không.