Chào các bạn .
Khi mình tìm hiểu về định phạm vi của biến cũng như của hàm thì như mình hiểu.
Đối với biến:
Nếu ta khai báo ngoài mọi hàm và có thêm từ khóa static vào đằng trước thì phạm vi của biến đó chỉ trong modul đó ( file scope ) .còn nếu không có từ khóa static thì biến đó sẽ có phạm vi toàn cục ( Global scope)
ví dụ
Code:
#include <stdio.h>
static int i ; /* file scope */
int j; /*Global scope*/
Trường hợp biến cục bộ ( ở trong một hàm hoặc trong một khối lệnh nếu có từ khóa static thì biến đó được lưu ở vùng DATA thay vì lưu ở vùng STACK. Do đó giá trị của biến static cục bộ vấn được giữ nguyên .
Đối với hàm:
Ta cũng định phạm vi của hàm bằng từ khóa static .( có có phạm vi trong modul)
câu hỏi : Ta có thể dùng từ khóa static trong prototype( nguyên mẫu hàm hay không) /* Mình đã thử trên VC++ 6 và không thấy báo lỗi ,nhưng theo các viết của các chuyên gia họ có viết thế bao giờ ko */
Nếu có tài liệu nói về đoạn này mong các bạn chia sẻ. ( tại đang tranh luận với ông thầy là có cho phép viết static ở prototype hay không? )