डेल्फी ने कुछ बुनियादी संख्यात्मक प्रकारों का समर्थन किया है और मैं सोच रहा था कि वे एक-दूसरे से कैसे जुड़े हैं।एक दूसरे से संबंधित मूल डेल्फी प्रकार कैसे हैं?
Types.pas:
DWORD = LongWord;
Largeint = Int64;
getmem.inc:
DWORD = Integer;
विंडोज
डेल्फी 2007 में मैं इन घोषणाओं (कुछ परस्पर विरोधी हैं, कुछ मात्र aliasses कर रहे हैं) मिल गया। पास:
DWORD = Types.DWORD;
SHORT = Smallint;
UINT = LongWord;
ULONG = Cardinal;
LONGLONG = Int64;
TLargeInteger = Int64;
ULONGLONG = UInt64;
इससे मुझे आधार पर हस्ताक्षर किए गए संख्यात्मक प्रकार छोटे, इंटीजर और Int64 के बारे में सोचने में मदद मिलती है। बिना हस्ताक्षर किए, बाइट, वर्ड और UInt64 है। लेकिन कार्डिनल और लॉन्गवार्ड के बीच क्या अंतर है? (वैसे, इन प्रकारों के लिए मूल और इच्छित आवरण क्या है?)
और क्या हस्ताक्षर 8 बिट पूर्णांक (Int8) के लिए एक प्रकार है?
// Int8 = ?unknown?;
UInt8 = Byte;
Int16 = SmallInt;
UInt16 = Word;
Int32 = Integer;
UInt32 = LongWord;
// Int64 already exists
// UInt64 already exists
अन्त में, आई इंट और uint, विशेष रूप से C/C++ संगतता और अन्य प्लेटफार्मों के लिए एक भविष्य स्विच (संभवतः भी 64 बिट) के संबंध में कैसे परिभाषित करना चाहिए? (इससे संबंधित एक सवाल है, जाहिर है, कैसे विभिन्न सांख्यिक प्रकार 64-बिट डेल्फी में परिभाषित किया गया है जाएगा?)
सभी टिप्पणियों के लिए धन्यवाद - मैंने इससे क्या सीखा है, कि मूल प्रकार जैसे UInt8 और सभी प्रकारों का उपयोग मूल रूप से किया जाना चाहिए था! यह अच्छा होगा अगर भविष्य में डेल्फी (या एफपीसी) संस्करण ने इसके प्रकार की घोषणाएं बदल दीं, ताकि मूलभूत मूलभूत रूप से बुनियादी बातों से स्पष्ट रूप से व्युत्पन्न न हो। मैं Type.pas या System.pas: टाइप इंटीजर = {$ IFDEF CPU64} Int64 {$ ELSE} Int32 {$ ENDIF} में ऐसा कुछ देखने की अपेक्षा करता हूं; बस मेरे 5 सेंट, हालांकि। – PatrickvL