मैं ओपनसीएल शैली वैक्टर के लिए क्लैंग के भाषा एक्सटेंशन में उपयोग करने के लिए एक परीक्षण कार्यक्रम लिख रहा हूं। मैं कोड को काम करने के लिए प्राप्त कर सकता हूं लेकिन मुझे इसके एक पहलू को पाने में समस्याएं आ रही हैं। मैं यह समझने में प्रतीत नहीं होता कि कैसे एक स्केलर सरणी से एक वेक्टर में लोड करने के लिए क्लैंग प्राप्त करना है।स्मृति से वैक्टर लोड करने के लिए बेहतर तरीका। (clang)
फिलहाल मैं कुछ ऐसा करना है:
byte16 va = (byte16){ argv[1][start], argv[1][start + 1], argv[1][start + 2],
argv[1][start + 3], argv[1][start + 4], argv[1][start + 5],
argv[1][start + 6], argv[1][start + 7], argv[1][start + 8],
argv[1][start + 9], argv[1][start + 10], argv[1][start + 11],
argv[1][start + 12], argv[1][start + 13], argv[1][start + 14],
argv[1][start + 15]};
मैं करूंगा आदर्श कुछ इस तरह की तरह:
byte16 va = *(byte16 *)(&(argv[1][start]));
कौन सा मैं आसानी से एआरएम या x86 के लिए उचित intrinsics जरिए कर सकते हैं। लेकिन वह कोड प्रोग्राम को क्रैश करने का कारण बनता है हालांकि यह संकलित करता है।
'memcpy (& va, और argv [1] [start], sizeof (va)) 'काम नहीं है? – jxh