هل تعرف عن ٪#x ، في سلسلة تنسيق اللغة C.
-
30-09-2019 - |
سؤال
KdPrint((
"Unknown IoControlCode %#x\n",
io_stack->Parameters.DeviceIoControl.IoControlCode
));
هذا غريب. ماذا يعني Sharp؟
المحلول
تقول وثائق printf:
يتبع الحرف ٪ صفر أو أكثر من الأعلام التالية:
# يجب تحويل القيمة إلى "نموذج بديل". بالنسبة لتحويلات o ، يتم صنع الحرف الأول لسلسلة الإخراج صفر (عن طريق بادئة 0 إذا لم يكن صفر بالفعل). بالنسبة لتحويلات X و X ، تحتوي نتيجة غير صفرية على السلسلة "0x" (أو "0x" لتحويلات X) تم إعدادها إليها. بالنسبة لتحويلات A و A و A و E و F و F و G و G ، فإن النتيجة ستحتوي دائمًا يتبع الرقم). بالنسبة لتحويلات G و G ، لا تتم إزالة الأصفار الزائدة من النتيجة كما لو كانت خلاف ذلك. للتحويلات الأخرى ، والنتيجة غير محددة.
مستندات MSDN على الأعلام هنا.
وذلك ل %#x
القيمة تسبق ببساطة مع 0x
. أين %x
سوف تنتج 34ab
, %#x
سوف تنتج 0x34ab
.
نصائح أخرى
#
Intercates تنسيق بديل. إلى عن على x
هذا يعني ذاك 0x
تم إعداده مسبقًا إلى الإخراج.
printf عند استخدامها مع المحدد x
, #
يؤدي إلى أن يكون الناتج بادئة مع 0x
شريطة أن تكون القيمة المطبوعة غير ذلك 0
.