Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Lỗi "waning type defaults to 'int' in declaration of " "

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    22

    Unhappy Lỗi "waning type defaults to 'int' in declaration of " "

    code ví dụ:
    C Code:
    1. card.c
    2. uint32 func(){
    3. int varf;
    4. ......
    5.  
    6. //bên dưới gọi lại varf
    7. varf = vartemp;
    8. }
    9. //compile báo lỗi:
    10. warning: type defaults to "int" in declaration of "varf"

    code chỉ là ví dụ 1 trong số các biến bị báo lỗi. tớ ko hiểu tại sao đã khai báo biến local rồi mà khi gọi lại nó lại ko nhận mà báo như thế?

    nếu tớ để type của biến đó vào trước khi gọi lại biến thì ko báo lỗi nữa, nhưng liệu như vậy có ổn? (gọi lại như thế khác nào tạo biến khác)
    C Code:
    1. int varf = vartemp; //nếu để như thế này thì ko báo lỗi nữa

    các bạn ai có kinh nghiệm về vụ này xin cho tớ lời khuyên!
    cảm ơn!
    Đã được chỉnh sửa lần cuối bởi grandthorn : 22-09-2011 lúc 03:18 PM.

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Bạn paste cả đoạn code lên đi. Mình đoán là bạn cái varf = temp; của bạn đã nằm ngoài function func() mất rồi.

  3. #3
    Ngày gia nhập
    03 2011
    Bài viết
    22

    code chỉ ví dụ thôi - ko post lên đc - bạn thông cảm. nhưng tớ chắc chắn mình kiểm tra rồi - nó nằm trong cùng 1 func();
    có ai có từng gặp vụ này chưa? giúp tớ với nào

  4. #4
    Ngày gia nhập
    09 2011
    Bài viết
    84

    bạn cho đoạn code đi
    với lại bạn dùng trình biên dịch gì?
    RISC better than CISC
    phamthechung0@gmail.com

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Bạn ghi dòng này:

    varf = 0;

    làm dòng trước tất cả các khóa đóng móc } của hàm trên

    Khi biên dịch, dòng cuối cùng không bị trình dịch báo lỗi là giới hạn phạm vi của biến.

  6. #6
    Ngày gia nhập
    03 2011
    Bài viết
    22

    Mặc định Lỗi "waning type defaults to 'int' in declaration of " "

    Trích dẫn Nguyên bản được gửi bởi hardwire Xem bài viết
    bạn cho đoạn code đi
    với lại bạn dùng trình biên dịch gì?
    code tớ ko paste ra đc - thông cảm nha - nhưng cấu trúc của nó tương tự đoạn tớ ghi ở trên.
    dùng GCCL2 làm compiler.

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Bạn ghi dòng này:

    varf = 0;

    làm dòng trước tất cả các khóa đóng móc } của hàm trên

    Khi biên dịch, dòng cuối cùng không bị trình dịch báo lỗi là giới hạn phạm vi của biến.
    varf là biến local bên trong hàm mà? bỏ ra ngoài ...... để làm j hả bạn? cho nó làm global hả?

  7. #7
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Trích dẫn Nguyên bản được gửi bởi grandthorn Xem bài viết

    varf là biến local bên trong hàm mà? bỏ ra ngoài ...... để làm j hả bạn? cho nó làm global hả?
    Ý của VoTichSu giống ý tớ tức là dòng gán của bạn đã đã ở ngoài scope của function mà bạn không biết đó thôi (Khá khó phân biệt nếu bạn dùng vài macro phức tạp). Vì vậy VoTichSu bảo bạn copy-paste dòng gán vào tất cả các vị trí trong function, kể từ dòng khai báo biến trở xuống - cứ cách 1 dòng code có sẵn lại paste 1 phát lệnh gán, để tìm ra vị trí mà function của bạn hết scope! Chứ không phải là vứt ra ngoài function.

  8. #8
    Ngày gia nhập
    03 2011
    Bài viết
    22

    tớ thử rồi
    thế này:
    C Code:
    1. card.c
    2. uint32 func(){
    3. int varf;
    4. //có 1 cái #ifdef ở đây ngay sau khi khai báo biến
    5. //ex
    6. #ifdef IS_USED
    7. if{}else{}endif....
    8. #endif
    9. //trong đoạn này thì mấy cái varf=0 ko báo jì cả
    10. ....
    11. //gọi lại varf
    12. varf = vartemp;
    13. //báo warning : type defaults to 'int' in declaration of 'varf'
    14. //ra ngoài #ifdef thì báo //warning: data defination has no type or storage class
    15. //báo 2 cái warn luôn!
    16.  
    17. }

    vậy xử sao? chỉ mình với!

  9. #9
    Ngày gia nhập
    12 2010
    Nơi ở
    Cần thơ
    Bài viết
    273

    Có trời, kêu xuống giúp ~~
    Nếu code k post được thì chắc bạn phải tự làm rùi...
    Ai bất tài, tôi nhìn hoài chẳng thấy,
    Đi khắp phòng tôi lấy 1 tấm gương,
    Khẽ đặt lên một góc phía bức tường,
    Nhìn vào đó, tôi tận tường kẻ đó.

  10. #10
    Ngày gia nhập
    03 2011
    Bài viết
    22

    thì tớ cũng chỉ mong các bạn đã từng gặp qua lỗi này cho mình ít kinh nghiệm xử lý nó thôi, rồi tự xử chứ đâu có mong vác code ra cho mọi người fix sẵn rồi vác về đâu.!

Các đề tài tương tự

  1. Sự khác nhau giữa input type="text" và input type="submit" và type ="button"
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 04-04-2012, 12:55 AM
  2. Lỗi"error C2275: 'T' : illegal use of this type as an expression" khi dùng "list<T>::iterator it"
    Gửi bởi doicanhden trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 19-01-2012, 01:59 AM
  3. Lỗi: "Unable to cast object of type 'Sales.SqlMessage' to type 'System.Data.DataSet"
    Gửi bởi TTDlatoi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 18-05-2011, 07:51 PM
  4. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  5. BC3.1 báo lỗi:"Linker warning: no moldule definition file specified : using defaults"
    Gửi bởi thelove39 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-03-2008, 10:39 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn