Tôi nhận được "tên loại không xác định 'uint8_t'" và những người khác thích nó bằng C trong MinGW. Bất kỳ ý tưởng nào để giải quyết vấn đề này?tên loại không xác định 'uint8_t', MinGW
Trả lời
Hãy thử bao gồm stdint.h
hoặc inttypes.h
.
Tôi vẫn gặp lỗi cho uint32_t, nhưng bao gồm stdint.h đã giải quyết các lỗi khác. – RobotRock
Để sử dụng uint8_t
bí danh loại, bạn phải bao gồm stdint.h
tiêu đề chuẩn.
Bạn cần phải #include
stdint.h
TRƯỚC KHI bạn #include
bất kỳ giao diện thư viện nào khác cần đến.
Ví dụ:
thư viện LCD của tôi sử dụng các loại uint8_t. Tôi đã viết thư viện của mình bằng giao diện (Display.h
) và triển khai (Display.c
)
Trong display.c, tôi có những điều sau đây bao gồm.
#include <stdint.h>
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
Và tính năng này hoạt động.
Tuy nhiên, nếu tôi tái sắp xếp chúng như vậy:
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
#include <stdint.h>
tôi nhận được lỗi bạn mô tả. Điều này là do Display.h
cần mọi thứ từ stdint.h
nhưng không thể truy cập vào vì thông tin đó được biên dịch SAU Hiển thị.h được biên dịch.
Vì vậy, hãy di chuyển stdint.h
phía trên bất kỳ thư viện nào cần thư viện và bạn sẽ không gặp phải lỗi nữa.
Đó chỉ là thiết kế kém, 'Display.h' phải chứa' #include
Đó là một chút không đầy đủ. Bạn có thể mở rộng hoặc cung cấp một tài liệu tham khảo về lý do tại sao không bao gồm trong tệp nguồn không? Bao gồm của tôi không cung cấp các loại cần thiết bởi các hàm mà thư viện cung cấp, vì vậy tôi sẽ không nghĩ rằng chúng cần phải nằm trong tệp tiêu đề. – LanchPad
Ngay sau khi bạn sử dụng bất kỳ thứ gì từ bất kỳ tiêu đề nào trong bất kỳ tệp nào, bạn chỉ cần đưa tệp đó vào nguồn của mình. Tôi không nói bạn nên bao gồm tất cả các tập tin trong tiêu đề (tôi cũng đã làm, nhưng chỉnh sửa lâu trước khi bạn trả lời). Trong nhận xét của tôi, tôi chỉ chỉ ra cách thiết kế tồi tệ là phải bao gồm một tệp trước một tệp khác để làm cho nó hoạt động. Nó sẽ không giúp bạn tiết kiệm không gian hay bất cứ thứ gì vì bạn sẽ cần phải làm điều này bao gồm mỗi lần trước khi tệp của bạn. Nếu 'Display.h' của bạn cần' stdint.h', nó không phải là bình thường để không đưa trực tiếp vào nó. – Jerska
- 1. Xcode ios Tên loại không xác định?
- 2. Lỗi [Pe513]: không thể chỉ định giá trị loại "void *" cho thực thể thuộc loại "uint8_t *"
- 3. Sự cố Tên loại không xác định NSManagedObject
- 4. tên loại không xác định trong mục tiêu c
- 5. _int64 không tên một loại
- 6. in uint8_t
- 7. Tên loại không xác định 'không gian tên' trong xCode 4.2?
- 8. Truyền tới loại không xác định Khi chỉ cho tên lớp là một chuỗi loại đó
- 9. TênError: tên 'UTC' không được xác định
- 10. uint8_t iostream behavior
- 11. Xác định loại được xác định
- 12. Loại không bắt buộcLỗi: Không thể đọc tên thuộc tính 'không xác định
- 13. Loại giá trị không xác định JSON
- 14. Không được xác định ở cấp loại
- 15. ValueError: loại url không xác định
- 16. TênError: tên 're' không được xác định
- 17. TênError: tên 'N_TOKENS' không được xác định
- 18. loại mới không thể xác định loại trả về - C++
- 19. MinGW không xác định tham chiếu đến malloc, miễn phí, sprintf, _beginthreadex
- 20. Tên liên tục không xác định của RubyMỗi tên lớp
- 21. Xcode 4: Tên loại không xác định 'NSUInteger'; ý của bạn là 'NSUInteger'?
- 22. Loại điểm cố định không nhân chính xác
- 23. scala động xác định loại
- 24. Thứ tự xác định loại
- 25. C# xác định loại chung
- 26. Định cấu hình Eclipse cho MinGW
- 27. Mingw nhiều định nghĩa của _Unwind_resume
- 28. Xác định xem loại là điển
- 29. Thực thi DynamicExpression với các loại không xác định
- 30. javax.xml.ws.WebServiceException: Không xác định loại cổng Java Struts SOAP WSDL
Vui lòng đăng một số mã. –
bạn có bao gồm 'stdint.h' không? – Necrolis