printf不在C32编译器上工作

printf不在C32编译器上工作,c,embedded,microcontroller,pic,mplab,C,Embedded,Microcontroller,Pic,Mplab,为什么printf不能像PIC18那样在PIC32上工作 例如,此代码在PIC18上运行良好,但在PIC32上运行不正常 printf("%lu",value); 使用C32编译器时,没有输出消息,我遗漏了什么?PIC18上的sizeof(未签名)是2 PIC32上的sizeof(未签名)为4 我怀疑value不是long unsigned,因此您在 printf("%lu",value); 如果是,请确保格式说明符与变量类型匹配。您是否尝试刷新流?不确定您的意思,顺便说一下,我正在使用MP

为什么printf不能像PIC18那样在PIC32上工作

例如,此代码在PIC18上运行良好,但在PIC32上运行不正常

printf("%lu",value);
使用C32编译器时,没有输出消息,我遗漏了什么?

PIC18上的sizeof(未签名)是2
PIC32上的sizeof(未签名)为4
我怀疑
value
不是
long unsigned
,因此您在

printf("%lu",value);

如果是,请确保格式说明符与变量类型匹配。

您是否尝试刷新流?不确定您的意思,顺便说一下,我正在使用MPLAB C32编译器。
printf
使用缓冲区,因此您是否尝试过使用
fflush(stdout)
查看要打印的内容仍在缓冲区中?我使用了
fflush(stdout)
打印后,我什么也没看到。这6种尺寸是什么:sizeof(无符号)、sizeof(值)、sizeof(无符号长)在PIC18和PIC32上?我怀疑答案会揭晓。我的变量定义为无符号long