/fp (حدد سلوك عائم-يؤشر)
تعين عائم-يؤشر السلوك في ملف التعليمات برمجية مصدر.
/fp:[precise | except[-] | fast | strict ]
Flags
precise
الشكل الافتراضي.يحسن consهوtency الاختبارات الفاصلة العائمة لمساواة و inequality أمثلية الأداء dهوabling التي قد تتغير precهوion الحسابات الفاصلة العائمة، هو المطلوبة للتقيد المطابقة ANSI. افتراضياً، يستخدم برنامج التحويل البرمجي التسجيلات 80 بت الخاصة بالمعالج الثانوي إلى الاحتفاظ بنتائج المتوسطة الحسابات الفاصلة العائمة. يؤدي ذلك إلى زيادة سرعة برنامج و برنامج يقلل الحجم. لأنه يتضمن الحساب عائم-نقطة أنواع بيانات التي تمثلها في ذاكرة أصغر من من 80 بت، على الرغم من ذلك، ينقل بتات إضافية من الدقة (80 بت ناقص عدد وحدات البت في أصغر عائم-نوع الإشارة) من خلال عملية حسابية طويل يمكن أن يعطي نتائج غير متناسقة.
مع /fp:preciseتشغيل x86 المعالجات، المحول البرمجي سينفذ التقريب تشغيل متغيرات من نوع عائمة دقة مناسبة للتعيينات و قوالب و عند تمرير المعلمات إلى دالة. تقريب هذا يضمن أن بيانات لا يحتفظ أي أهمية أكبر من السعة نوعه. برنامج التحويل البرمجي مع /fp:preciseيمكن أن يكون أبطأ وأكبر من واحد المترجمة بدون /fp:precise. /fp:preciseintrinsics لتعطيل; التشغيل القياسية-الوقت تستخدم إجراءات المكتبة بدلاً من ذلك. لمزيد من المعلومات، راجع /Oi (توليد دالات مضمنة).
سلوك التالي النقطة العائمة هو ممكنة مع /fp:precise:
contractions، أو استبدال العمليات متعددة بعملية مركبة واحدة باستخدام فقط مفردة التقريب في النهاية، هو ممكنة مع /fp:precise.
تعبير تحسينات غير صالحة من أجل القيم الخاصة (NaN، + اللانهاية،-اللانهاية، +، 0-0) لن يتم السماح. أمثلية الأداء x-x => 0، x*0 => 0، x-0 => x، x+0 => x، و 0-x => -xغير صالحة من الجميع لأسباب مختلفة (راجع IEEE 754 والمقياس C99).
سيقوم المحول البرمجي بمعالجة المقارنات التي تشتمل على NaN بشكل صحيح. على سبيل المثال، x != xيتم تقييمها إلى صحيحاً إذا xهو NaN و طلبها رفع المقارنات التي تشتمل على NaN على استثناء.
ستتبع تقييم التعبير FLT_EVAL_METHOD C99 = 2، باستثناء واحد. أثناء البرمجة ل x86 المعالجات، لأن FPU هو معينة إلى 53 بت precهوion, th هو يعتبر precهوion مزدوجة طويلة.
الضرب بالضبط 1.0 تحويل في استخدم من العامل الأخرى. x*y*1.0هو تحويل فيx*y. وبشكل مماثل، x*1.0*yهو تحويل في x*y.
Divهوion بالضبط 1.0 هو تحويل في استخدام من المقسوم. x*y/1.0هو تحويل فيx*y. وبشكل مماثل، x/1.0*yهو تحويل في x*y.
/fp:preciseمع استخدام fenv_accessON بتعطيل بعض تحسينات مثل تقييمات وقت التحويل البرمجي عائم يؤشر التعبيرات. تشغيل سبيل المثال، إذا قمت بتغيير وضع التقريب مع _control87 _controlfp ، __control87_2، والمترجم يقوم بعملية حسابية الفاصلة عائمة، ولن يكون الوضع التقريب الذي حددته سارية المفعول إلا إذا fenv_accessهو تشغيل.
/fp:preciseاستبدال**/Op**خيار المحول البرمجي.
fast
قم بإنشاء تعليمات برمجية أسرع في معظم الحالات. /fp:fastولا يمكن استخدامه مع**/fp:strictأو/fp:precise**، سيستخدم خيار أخير المحدد في سطر الأوامر. /fp:fastو**/fp:except**يقوم بإنشاء خطأ المترجم.تحديد /Za،/Ze (اللغة يعطل ملحقات)(ANSI توافق) و /fp:fastقد ينتج سلوك غير متوقع. على سبيل المثال، مفرد للدقة عائم-يؤشر قد لا يمكن تقريب العمليات دقة واحدة.
except[-]
عائم يمكن الاعتماد عليه-يؤشر طراز استثناء. سوف يتم رفع الإستثناءات فورًا بعد أن يتم تشغيلها. يكون هذا الخيار معطلاً بشكل افتراضي. إلحاق علامة سالب إلى خيار بوضوح بتعطيل عليه.strict
عائم strictest-يؤشر الطراز. /fp:strictيؤدي إلىfp_contractلتكون إيقاف وfenv_accessأن تشغيل. /fp:exceptيتم تضمين ويمكن معطّل بشكل واضح تحديد**/fp:except-**. عند استخدامها مع /fp:except-، /fp:strictيفرض التقيد دلالات الفاصلة العائمة ولكن بدون احترام للأحداث الاستثنائية.
ملاحظات
/fpيمكن تحديد الخيارات في " متعددة نفس التجميع.
ل عنصر تحكم سلوك الفاصلة العائمة بدالة، راجع float_controlpragma.
معظم من تحسينات الفاصلة العائمة المتعلقة إلى /fp:strict، /fp:except(and its corresponding pragmas)، و fp_contractpragma هي المعتمدة على آلة. /fp:strictو**/fp:exceptلا تتوافق مع/clr**.
/fp:preciseيجب معالجة معظم الخاص بالتطبيق عائم-نقطة متطلبات. إذا لزم الأمر، يمكنك استخدم /fp:exceptو /fp:strict، ولكن قد يكون هناك بعض انخفاض في الأداء. إذا كان الأداء هو الأكثر أهمية، قد تحتاج إلى استخدام /fp:fast.
/fp:strict,/fp:fast، و**/fp:precise**أوضاع دقة (صحة). واحد فقط يمكن أن تكون سارية المفعول في مرة الواحدة. إذا /fp:strictو /fp:preciseيتم تحديد المحول البرمجي استخدم أن يقوم بمعالجة الأخيرة. لا يمكنك تحديد كل من /fp:strictو /fp:fast.
للحصول على مزيد من المعلومات، راجع https://msdn.microsoft.com/مكتبة/الافتراضي.asp?url=/مكتبة/en-us/dv_vstechart/html/floapoint.asp .
لتعيين خيار المحول البرمجي هذا في بيئة تطوير Visual Studio
افتح مربع الحوار صفحات الخصائص للمشروع. للمزيد من التفاصيل ، راجع كيفية: صفحات الخصائص المشاريع المفتوحة.
قم بتوسيع العقدة خصائص التكوين.
توسيع العقدة /C + + C.
تحديد صفحة خصائص توليد تعليمات برمجية.
قم بتعديل الخاصية عائم يؤشر طراز.
إلى قم بتعيين هذا خيار المترجم برمجياً
- انظر floatingPointModel