2012-01-21 29 views
44

मुझे "अज्ञात प्रकार का नाम 'uint8_t'" और अन्य लोग इसे सीजी का उपयोग करके सीजी का उपयोग करते हैं। कोई विचार यह कैसे हल करें?अज्ञात प्रकार का नाम 'uint8_t', मिनजीडब्ल्यू

+1

कृपया कुछ कोड पोस्ट करें। –

+5

क्या आपने 'stdint.h' शामिल किया था? – Necrolis

उत्तर

87

stdint.h या inttypes.h सहित प्रयास करें।

+0

मुझे अभी भी uint32_t के लिए त्रुटि मिलती है, लेकिन stdint.h सहित दूसरों को हल किया गया है। – RobotRock

10

uint8_t टाइप उपनाम का उपयोग करने के लिए, आपको stdint.h मानक शीर्षलेख शामिल करना होगा।

3

आपको #includestdint.h#include इससे पहले कि आप किसी अन्य लाइब्रेरी इंटरफेस की आवश्यकता हो।

उदाहरण:

मेरे एलसीडी पुस्तकालय uint8_t प्रकार उपयोग करता है। मैंने अपनी लाइब्रेरी को एक इंटरफ़ेस (Display.h) और एक कार्यान्वयन (Display.c)

प्रदर्शन.c में, मेरे पास निम्नलिखित शामिल हैं।

#include <stdint.h> 
#include <string.h> 
#include <avr/io.h> 
#include <Display.h> 
#include <GlobalTime.h> 

और यह काम करता है।

हालांकि, अगर मैं उन्हें इतना की तरह फिर से व्यवस्थित:

#include <string.h> 
#include <avr/io.h> 
#include <Display.h> 
#include <GlobalTime.h> 
#include <stdint.h> 

मैं त्रुटि आप का वर्णन मिलता है। ऐसा इसलिए है क्योंकि Display.h को stdint.h से चीजों की आवश्यकता है लेकिन इसे एक्सेस नहीं किया जा सकता क्योंकि प्रदर्शन जानकारी संकलित के बाद संकलित की जाती है।

तो किसी भी पुस्तकालय के ऊपर stdint.h को स्थानांतरित करें और आपको अब त्रुटि नहीं मिलनी चाहिए।

+14

यह सिर्फ खराब डिज़ाइन है, 'Display.h' में' # शामिल 'होना चाहिए। आपके लिए चीजों को शामिल करने के लिए फ़ाइल सहित भरोसा न करें। यही है हेडर गार्ड यहाँ के लिए हैं। – Jerska

+0

यह थोड़ा अपूर्ण है। क्या आप विस्तारित कर सकते हैं या इस पर एक संदर्भ प्रदान कर सकते हैं कि स्रोत फ़ाइल में क्यों शामिल नहीं होना चाहिए? मेरे पुस्तकालय द्वारा प्रदान किए जाने वाले कार्यों द्वारा आवश्यक प्रकार प्रदान नहीं करते हैं, इसलिए मुझे नहीं लगता कि उन्हें हेडर फ़ाइल में होना आवश्यक है। – LanchPad

+0

जैसे ही आप किसी भी फ़ाइल में किसी भी शीर्षलेख से कुछ भी उपयोग करते हैं, आप बस उस फ़ाइल को अपने स्रोत में शामिल करते हैं। मैंने नहीं कहा कि आपको हेडर में सभी फाइलें शामिल करनी चाहिए (ठीक है मैंने किया, लेकिन आपके उत्तर देने से पहले संपादित किया गया)। मेरी टिप्पणी में, मैं केवल यह बताता हूं कि इसे काम करने के लिए किसी अन्य से पहले फ़ाइल को शामिल करना कितना खराब डिज़ाइन है। यह आपको कोई भी स्थान नहीं बचाएगा या जो कुछ भी आपको अपनी फ़ाइल से पहले हर बार शामिल करने की आवश्यकता होगी। यदि आपके 'display.h' को' stdint.h' की आवश्यकता है, तो इसमें सीधे शामिल नहीं करना सामान्य नहीं है। – Jerska

संबंधित मुद्दे