/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

  1. افتح مربع الحوار صفحات الخصائص للمشروع. للمزيد من التفاصيل ، راجع كيفية: صفحات الخصائص المشاريع المفتوحة.

  2. قم بتوسيع العقدة خصائص التكوين.

  3. توسيع العقدة /C + + C.

  4. تحديد صفحة خصائص توليد تعليمات برمجية.

  5. قم بتعديل الخاصية عائم يؤشر طراز.

إلى قم بتعيين هذا خيار المترجم برمجياً

راجع أيضًا:

المرجع

خيار المحول البرمجي

خيارات إعداد المترجم