`

Printf 的问题

 
阅读更多
#include <stdio.h>
int main (int argc, char *argv[])
{
printf ("%hhd\n", 0x100);
printf ("%hhu\n", 0x100);
return 0;
}

 

[mathieu@localhost mathieu]$ ./a.out
0

0

以下结果一样

printf ("%hhd\n", 256);
printf ("%hhu\n", 256);

 

%hhu 是指定后面的参数为unsigned char(不含负数, h--half)类型然后打印出。

这个例子中256转成char(8bit)后的值为0, 也就是取0x100的后两位。

 

(Without a type modifier, the corresponding argument is treated as an int (for the signed conversions `%i' and `%d') or unsigned int (for the unsigned conversions `%o', `%u', `%x', and `%X'). Recall that since printf and friends are variadic, any char and short arguments are automatically converted to int by the default argument promotions.

 

`hh' Specifies that the argument is a signed char or unsigned char, as appropriate. A char argument is converted to an int or unsigned int by the default argument promotions anyway, but the `h' modifier says to convert it back to a char again.

 

分享到:
评论

相关推荐

    GD32 Printf重定向

    此外,如果项目中使用了RTOS(实时操作系统),可能还需要考虑线程安全问题,例如在多任务环境下使用互斥锁保护串口写操作。 总结,通过以上步骤,我们可以成功地在GD32上实现`printf`的重定向,将输出通过USART0...

    printf函数输出格式

    `printf`函数是C语言中用于格式化输出的函数,其功能强大,能够根据不同的格式控制符输出不同类型的数据。在使用`printf`时,确保输出格式与数据类型匹配至关重要,因为这直接影响到输出的正确性。 `printf`的格式...

    S32K144使用printf格式化输出

    描述中的“可直接编译通过”意味着这个解决方案已经考虑到了编译时的依赖问题,确保了在没有完整C库支持的情况下,编译过程能够顺利进行。这通常需要开发者对`printf`函数的工作原理有深入理解,并且可能使用了类似...

    STM32在C++上重定向printf,亲测能用

    在C++环境中开发STM32项目时,我们通常会遇到一个问题:标准输出函数`printf`不能直接用于串口通信,因为它默认是重定向到控制台的。在本案例中,描述了如何在STM32的C++项目中实现`printf`函数的重定向,使其能够...

    WINAVR2006 MEGA32使用printf

    在嵌入式系统中,由于没有标准的 I/O 设备支持,直接使用 `printf` 函数可能会导致问题。因此,在使用 `printf` 函数之前,需要对其进行适当的配置。 ##### 3.1 配置 UART 串口 在 ATmega32 上使用 `printf` 函数...

    自己写的printf

    在实现过程中,可能会遇到的问题包括: - 错误处理:如何处理无效的格式化字符串或不匹配的参数类型? - 性能优化:如何避免不必要的字符串拷贝和内存分配? - 兼容性:如何尽可能地模仿标准库 `printf` 的行为,以...

    8258&8278SDK移植Printf打印调试module工程移植实例.rar

    Printf函数源于C语言,是一种强大的格式化输出函数,常用于打印变量值、表达式结果等,以辅助开发者理解和定位问题。 首先,我们需要理解Printf函数的工作原理。它基于标准输入/输出(I/O)流,通过定义不同的输出...

    printf重定向.zip

    6. **printf与内存管理**:由于STM32的资源有限,使用printf可能需要考虑堆栈空间和内存分配问题。printf的缓冲区管理和字符串格式化可能会消耗不少RAM,因此在资源紧张的系统中,可能需要优化printf的实现,或者...

    printf系列教程 - 源码工程.zip

    4. **错误处理**:`printf`函数如何检测和处理无效的格式字符串,以及如何避免缓冲区溢出等问题。 5. **效率优化**:通过源码学习`printf`的性能优化技巧,例如预处理优化,以及如何减少内存访问和计算次数。 6. *...

    STM32串口通信 USART1(printf+USER_printf)

    在本主题中,我们将深入探讨如何利用USART1实现基于`printf`和`USER_printf`的串口通信。 首先,`printf`函数是C语言中用于格式化输出的函数,它允许我们在控制台上打印各种类型的数据。在STM32开发中,我们通常会...

    Keil MDK环境下使用printf函数的解决方法 .txt

    然而,在Keil MDK环境下,如果直接调用`printf()`函数可能会遇到一个常见问题:程序会在`SWI_Handler`处陷入无限循环,从而无法执行后续代码,导致程序停滞不前。本文将详细介绍如何在Keil MDK环境下正确使用`printf...

    printf用法大全,C语言printf格式控制符一览表.docx

    ### C语言printf函数详解 #### 一、printf函数概述 `printf`函数是C语言中最常用的输出函数之一,用于向...在日常开发中,合理使用`printf`函数不仅能够帮助我们快速定位问题,还能让我们的程序更加美观和易于理解。

    自己的串口printf函数实现

    为了克服这个问题,我们可以自定义一个printf函数,实现对任意串口的输出。 自定义串口printf函数的核心在于理解printf函数的工作原理。printf是一个格式化输出函数,它根据指定的格式字符串和参数,将处理后的结果...

    msp430-printf

    《使用 MSP430 单片机实现 printf 函数》 在嵌入式系统开发中,尤其是在使用单片机如 MSP430 进行低功耗应用时,调试是必不可少的一个环节。传统的调试手段如 LED 灯、蜂鸣器等在复杂问题的排查上显得力不从心。...

    printf不打印,不显示,不输出 怎么办? 什么原因?

    在编程过程中,我们经常使用`printf`函数来输出信息到标准输出设备,通常是显示器。当遇到`printf`不打印、不显示或不输出的情况时,这可能是由多种原因导致的。下面将详细讨论可能的问题及解决方案。 首先,我们...

    宏封装printf带颜色打印

    通过宏定义,我们可以将标准的printf函数扩展,使其能够输出带有颜色的文本,这样在终端或者控制台上显示的信息就会更加醒目,帮助我们快速定位问题。 首先,我们需要理解什么是宏。宏是C/C++预处理器提供的一种...

    彩色printf输出库

    "彩色printf输出库"就是为了解决这个问题而设计的,它专为Windows环境构建,允许开发者在控制台中输出不同颜色的文本。这个库通过自定义的printf函数扩展了标准的C语言I/O功能,使我们能够在调试和日志记录时更加...

    STM32 printf 函数重定向

    在某些情况下,可能还需要处理多线程环境下的同步问题,确保多个任务同时调用`printf`时不会导致数据交错。可以使用互斥锁(mutex)或其他同步机制来解决这个问题。 总之,STM32的`printf`函数重定向是一项重要的...

    printf实现

    本项目聚焦于`printf`的实现,特别是在ARM-Linux-GCC编译环境下,针对裸机程序,解决除法、浮点数计算以及C库依赖的问题。 首先,我们要理解`printf`函数在标准C库中的作用。它是`stdio.h`头文件中定义的一个输出...

Global site tag (gtag.js) - Google Analytics