完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我使用PRINTF变量UINT32×T。这种类型的变量有32位的固定,所以这等于C.中的长It,这是真的吗? 因此,对于PrtTf,正确的格式字符串是: PrtTf(“%LU”,瓦尔河);//%Lu= & Gt; 现在,变得奇怪了:如果我使用%LU,在生成之后通知列表中没有错误,但是在源编辑器窗口的对应行中有一个错误指示器,说“格式指定类型‘un签署long’”,但是该参数具有“uint 32′t”类型(又名‘无符号int’’)。 如果我使用%u,源编辑器窗口中的错误指示符就消失了,但是在生成警告之后,在通知列表中显示:“格式”%u’期望类型为“未签名int”的参数,但是参数2具有类型“uint 32 t t {aka长无符号int }”。 这是令人困惑的。我知道我可以用 PRINTF(“%LU”,(长INT)var); 它消除了两个错误指示器,但我想知道为什么不同的位置有错误(源代码窗口与通知列表),以及为什么%LU给出错误-%LU应该是正确的imHO。 关于错误消息的行为是PSoC Creator的错误吗?我应该提起诉讼吗? 当做, 拉尔夫 以上来自于百度翻译 以下为原文 Hi, I'm using printf with a variable of type uint32_t. Variables of this type have a fixed with of 32 bits, so this equals to long int in C. Is this true? So, for printf, the correct format string is: printf("%lu", Var); //%lu => long unsigned Now, it's getting strange: If I use %lu, I get no error in the notice list after a build, but a error indicator in the corresponding line of the source editor window, saying "format specifies type 'unsigned long', but the argument has type 'uint32_t' (aka 'unsigned int')". If I use %u, the error indicator in the source editor window wents away, but after a build a warning is shown in the notice list: "format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t {aka long unsigned int}" This is confusing. I know I can use printf("%lu", (long int)Var); which eliminates both error indicators, but I wonder why there are errors different positions (source code window vs. notice list), and why %lu gives an error - %lu should be right IMHO. Is the behaviour regarding the error messages a bug of PSoC Creator? Should I file a case about it? Regards, Ralf |
|
相关推荐
7个回答
|
|
我尝试了你在主C中写的代码。
UIT32 32 VAR=0x000 023; CyGloalActuabess;/*启用全局中断。*/ PrtTf(“%LU”,var); 但是我没有在PSoC创建者4.1 UpDeDe1中有任何错误指示器(屏幕截图)。 你能提供你观察这个问题的项目吗? PNG 69.4 K 以上来自于百度翻译 以下为原文 I tried what you mentioned by writing this code in main.c- uint32_t var=0x00023; CyGlobalIntEnable; /* Enable global interrupts. */ printf("%lu",var ); But I didn't got any error indicator ( screenshot attached ) in PSoC Creator4.1 update1. Can you please provide the project in which you are observing the issue.
|
|
|
|
嗨,Anks, 你错过了包括和。请尝试包含这个文件。我附上了行为的截图,一个是%u,一个是%u,重建后拍摄照片。 当做, 拉尔夫 Test-Primtf Unt32×T.2.PNG 25.9 K Test-Primtf Unt32×Typ1.PNG 25.4 K 以上来自于百度翻译 以下为原文 Hi Anks, you missed to include Regards, Ralf
|
|
|
|
尝试使用UIT32而不是UIT32 32,您不应该看到任何警告。 以上来自于百度翻译 以下为原文 Try using uint32 instead of uint32_t, you should not see any warnings. |
|
|
|
嗨,SRDS, 谢谢,我会试试看。因此,这个问题是因为IDE不能确定PrtTF参数的UIT32 32位的位宽度吗? 当做 以上来自于百度翻译 以下为原文 Hi srds, thank you, I'll try it. So, this issue is because the IDE is not capable of determining the bit width of uint32_t for the printf arguments? Regards |
|
|
|
注意,它是代码编辑器中的诊断警告(因为Type是不同的)而不是编译器生成的警告。因此,UIT32和UIT32的功能都是相同的。 以上来自于百度翻译 以下为原文 Note that it is a diagnostic warning in the code editor (since the typedef are different) and not a compiler generated warning. So, both uint32 and uint32_t functionally work the same way. |
|
|
|
即使是UIT32,我在编辑器中得到警告,从%LU更改为%u,但是如果我这样做,编译器就会发出警告。 以上来自于百度翻译 以下为原文 even with uint32 i am getting warning in editor to change to %u from %lu, but if i do that then compiler gives warning. |
|
|
|
如果你正在使用PSoC 6 MCU,试试这个: Prtf(“Val:%Lurn”),(未签名long)Val. 以上来自于百度翻译 以下为原文 If you are using PSoC 6 MCU, try this: printf("Value of Val: %lurn", (unsigned long)Val); |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2071 浏览 1 评论
1827 浏览 1 评论
3642 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1762 浏览 6 评论
1513 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
511浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
362浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
410浏览 2评论
357浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 11:07 , Processed in 1.117305 second(s), Total 58, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号