01/10/2018, 08:24
Số lượng biến có thể khai báo trong Pascal?
Sáng nay thầy có hỏi lớp em là trong pascal có thể khai báo bao nhiêu biến, em trả lời là tùy thuộc vào dung lượng bộ nhớ, nhưng thầy lại bảo là không giới hạn, vậy thực hư ra sao nhỉ các pro ? :v
Bài liên quan
Không giới hạn ư? Nếu vậy thì trong Pascal đã không có thông báo lỗi: Too many variables
Em có search trên Google thì tìm thấy như sau:
Cho em hỏi vì sao vượt quá 64 KB là lỗi ạ ? (vì 64 KB khá là nhỏ ~~)
Cái này chắc của thằng Turbo. Lí do rất là bí hiểm và lắt léo.
Thực ra nó ntn: Hồi xưa không gian bộ nhớ chỉ có 20 bit (do chip có ít chân), vì vậy mấy ông “thần” nghĩ ra một kiến trúc ntn: một ô nhớ sẽ có địa chỉ gồm 2 khối 16 bit, bên trái gọi là số hiệu segment và bên phải gọi là ô nhớ. Một stack chỉ được phép nằm gọn trong segment.
The’ con` Free Pascal thi sao a ?
Vi lop’ e toan dung Free Pascal chu ko phai turbo pascal
Chắc cỡ 1MB đấy. Sau này không còn cái segment đấy nữa nên chỉ dựa vào setting thôi.
Thiệt ko anh ? Tổng kích thước tất cả các biến khai báo trong Free Pascal vượt quá 1MB là lỗi ạ ? (để em còn lên “cãi lý” với thầy nữa )
Dựa vào setting nhé. Mặc định là 16K/1M.
16 KB / 1 máy hả anh ??
Nhưng tóm lại là đáp án “Không giới hạn” không chính xác phải không ?
Không giới hạn là chính xác.
Vì không có nơi nào quy định về số lượng của biến trong pascal cả và như a rogp10 nói thì nó chỉ dựa vào setting của compiler.
Và theo mình nhớ thì FPC cho phép ko giới hạn.
Uhmmm … Vậy trong C/C++ thì điều này có được cho phép ko a ?
C/C++ biến toàn cục đc khai báo tùy thích, nhiêu cũng được.
Còn biến cục bộ dựa vào giới hạn của stack
Không set lên 2GB là tối đa rồi. http://www.freepascal.org/docs-html/prog/progsu102.html
Cái đó là stacksize mà a rogp10