Chủ đề: Magic number là số gì?
-
09-05-2012, 05:48 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Magic number là số gì?
Mình đọc trong cuốn "the c programming language" có một đoạn nhắc đến magic number mà không rõ magic number là số gì. Mong các bạn giúp đỡ
View more random threads:
- Có thể dùng VC++2005 để biên dịch chương trình Visual C
- Giải phóng bộ nhớ sau khi gọi đệ quy
- cách load ảnh jpg trong MFC vs 2010
- Lỗi "unresolved external symbol _WinMain@16"trong C
- lỗi hàm gets???
- Tạo Project Lập trình OpenGL
- Xử lý Mouse
- Đổi màu của thanh copying!
- LISTBOX trong VC++. Kiểm tra trùng lặp trong listbox?
- Chuyển code đồ họa sang OpenGL, giúp em với?
-
09-05-2012, 06:08 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình đã từng đọc ở đâu đó và không nhớ rõ lắm, nhưng theo những gì minh biết thì :
Magic number là 1 số được chọn 1 cách cố định để đại diện cho 1 ý nghĩa nào đó.
Ví dụ, 0 là 1 magic number trong C++, với ý nghĩa là index đầu tiên của 1 mảng.
Kiến thức này mình chưa chắc chắn.
Cụ thể hơn bạn nên tham khảo : ( thực ra là không cụ thể cho lắm [IMG]images/smilies/biggrin.png[/IMG] )
Mã:http://en.wikipedia.org/wiki/Magic_number_%28programming%29
-
10-05-2012, 02:14 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cảm ơn. Nhưng mà có tài liệu tiếng Việt thì tốt hơn ^^
-
31-08-2014, 02:14 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
theo mình biết thì magic number là một số bất kì do người lập trình đặt sẵn nhưng không biết ý nghĩa chính xác của nó là để làm gì. Người lập trình ra đọc thì hiểu nhưng mà người ngoài đọc thì ko hiểu cái số đó là dùng để làm gì và tại sao có nó mà ko phải là môt số khác
đó là theo mình hiểu thôi có gì không đúng m.n thông cảm [IMG]images/smilies/2.gif[/IMG]
-
31-08-2014, 02:28 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Từ này có ít nhất 3 nghĩa:
1. Hằng số biểu thị định dạng file. (gọi là file signature)
2. Giá trị đặc trưng, biểu thị cho một dấu hiệu. (VS có 1 hằng số cho những biến chưa khởi tạo trong Debug mode)
3. Một hằng số không có ý nghĩa rõ ràng trong code ("smelly" code)
-
05-11-2014, 09:46 AM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình có đoạn code sau:
int nSize = 10;
int* pArra = (int*)malloc(nSize * 4); // nSize * 4 = 10 * 4 = 40
1. Build đoạn code này và chạy ở môi trường window 32 bits thì mình có size của mãng con trỏ là 40.
2. Build đoạn code này và chạy ở môi trường window 64 bits thì mình có size của mãng con trỏ cũng là 40.
=> Kết quả 2 sai bét rồi hé, size của con trỏ trên môi trường 64 bits gấp đôi con trỏ trên 32 bits, để đoạn code ở trên chạy đúng thì nSize của tôi phải nhân 8.
=> Số 4 trong trường hợp này là magic number. Vậy magic number đơn giản chỉ là ở môi trường 1 là A nhưng ở môi trường 2 lại là B. Tránh dùng magic number để code như trên. Để chương trình hoạt động luôn đúng khi migration thì đoạn code trên nên code như sau:
int nSize = 10;
int* pArra = (int*)malloc(nSize * sizeof(int*));
p/s: lâu quá ko code có syntax bỏ qua cho.
-
05-11-2014, 06:51 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- Số 60 Thái Hà, Đống Đa, Hà Nội
- Bài viết
- 0
Magic number là số tiền trong bank account. [IMG]images/smilies/smile.png[/IMG]
Àh ... thông thường Magic number là cái số cố định ví dụ:
LÁ_BÀI_TRONG_1_BO_BAI = 52;
SO_BO_BAI_CHOI = 1
Thay vì chúng ta viết bobai[52] thì chúng ta sử dụng: BOBAI[LÁ_BÀI_TRONG_1_BO_BAI], và thông thường MAGIC NUMBER là dạng ở dạng CONST.
VÍ DỤ 2:
total =19.95 * quantity;
19.95 (Magic Number) số này nghĩ là gì, đôi lúc chúng ta có the đoán được nó là giá tiền, nhưng khi chúng ta viết:
PRICE = 19.95
total = PRICE * quantity;
Hy vọng giúp ích được phần nào.
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...