C6273

تحذير 6273-غير الصحيح الذي تم تمريره كمعلمة <number> عند رقم صحيح هو المطلوبة في استدعاء <دالة>: إذا كانت القيمة المؤشر هو تمرير،%p يستخدم

Th هو التحذير يشير إلى أن سلسلة التنسيق يحدد عددا صحيحاً، على سبيل المثال، على %d، الطول أو أسبقية مواصفات printfولكن عددا غير-صحيحاً مثل float، سلسلة، أو structهو التي يتم تمريرها كمعلمة. Th هو defect هو المحتمل أن ينتج إخراج غير صحيحة.

مثال

تنشئ التعليمة البرمجية التالية th هو تحذير لأن عددا صحيحاً هو المطلوبة بدلاً من على floatإلى sprintf دالة:

#include <stdio.h>
#include <string.h>

void f_defective()
{
  char buff[50];
  float f=1.5;
  
  sprintf(buff, "%d",f);
}

تستخدم التعليمة البرمجية التالية تحويل رقم صحيح إلى تصحيح هذا التحذير:

#include <stdio.h>
#include <string.h>

void f_corrected()
{
  char buff[50];
  float f=1.5;

  sprintf(buff,"%d",(int)f);
}

يلي تعليمات برمجية يستخدم دالة معالجة سلسلة آمن، sprintf_s، لتصحيح هذا التحذير:

#include <stdio.h>
#include <string.h>

void f_safe()
{
  char buff[50];
  float f=1.5;

  sprintf_s(buff,50,"%d",(int)f);
}

Th هو تحذير هو غير قابل للتطبيق تشغيل Windows 9x و Windows NT الإصدار 4 لأن%p هو غير معتمدة تشغيل هذه الأنظمة الأساسية.

راجع أيضًا:

المرجع

sprintf _sprintf_l ، swprintf ، _swprintf_l ، __swprintf_l