यह bignum पुस्तकालयों और सी भाषा के लिए जीसीसी विशिष्ट हैक्स के विषय पर आज पहले एक सवाल से पैदा हुई विशेष रूप से, इन दोनों घोषणाओं का इस्तेमाल किया गया:।जीसीसी __attribute __ ((मोड (XX)) वास्तव में क्या करता है
typedef unsigned int dword_t __attribute__((mode(DI)));
32 बिट सिस्टम पर और
typedef unsigned int dword_t __attribute__((mode(TI)));
64-बिट सिस्टम पर।
मैं दिया यह मानें कि इस सी भाषा के लिए एक विस्तार प्राप्त करने के लिए जो कुछ भी यह प्राप्त होता है कोई रास्ता मौजूद है है वर्तमान (सी 99) मानकों में।
तो मेरे सवालों का सरल हैं: कि इस धारणा सही है? और अंतर्निहित स्मृति के लिए ये कथन क्या करते हैं? मुझे लगता है कि परिणाम मैं 64-बिट सिस्टम के लिए एक dword
में 32-बिट सिस्टम के लिए 2*sizeof(uint32_t)
और 2*sizeof(uint64_t)
है, मैं सही हूँ?
मैं बस क्या जरूरत है, +1। क्या इसके चारों ओर जाने के लिए कोई "मानक" तरीका नहीं है, मैं इसे लेता हूं? यानी 128-बिट प्रकार कहें? अपने वर्तमान उपयोग में, हम 'dword = word << 1' सुरक्षित और आसानी से कर सकते हैं; अगर मैं इसे मदद कर सकता हूं तो मैं इसे फ़ंक्शन इत्यादि से प्रतिस्थापित नहीं करूंगा। –
@Ninefingers: जीसीसी में आप '__int128' का उपयोग कर सकते हैं मेरा मानना है: http://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html। –
@Ninefingers: जीसीसी विस्तार प्रकार '__int128_t' और' __uint128_t' (कम से कम 64-बिट प्लेटफॉर्म पर, 32-बिट लक्ष्यों के बारे में सुनिश्चित नहीं है) –