Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    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

  3. #3
    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 ^^

  4. #4
    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]

  5. #5
    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)

  6. #6
    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.

  7. #7
    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.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •