完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
升级到XC 1.45之后,我得到了一些(非常多)不同的警告。用于编译的代码,没有警告。默认级别被设置为默认-3.示例:一个警告在Microchip标准库中:C:Micro.xc8v1.45source.doprnt.c:541:warning:(373)隐式签名到无符号转换。N=~T0CONbits.TMR0ON;//warning:(373)隐式签名到无符号的.rsionorADCON0=(config&0xC0)|(config2&0b00010001);//config和config2声明为无符号的char;还有警告,如“warning:(1498)表达式中的指针(Gets@.)可能没有目标”,例如I:我是不是错过了什么,还是XC8做了一些平常的事情…在doprnt.c中的警告可能是最令人印象深刻的,因为该功能是用XC8提供的。我想知道是否有人遇到了相同的问题,或者只是我的设置。我不想用0的警戒值来驳斥他们(这就是我必须使用的)。
|
|
相关推荐
18个回答
|
|
|
是啊!XC8已经成熟。最后,不要抱怨——我已经将警告设置为-9,并且能够在没有任何警告的情况下输出。在更新到1.45之前,我在1.32中遇到过许多奇怪的警告。结果(感谢1.45)我打开了,但没有结束评论。发出警告的行距实际错误“几光年”、“隐式有符号到无符号转换”来自于将常数赋给无符号(非后缀常量隐式认为是sugned)——或者来自于本质上扩展为有符号的操作(例如,乘法)。1.45字节,我很满意。
|
|
|
|
|
|
这样好些了吗?TMRON = TMR0ON!T0CONTITES.TMR0ON;//警告:(373)隐式符号到无符号转换
|
|
|
|
|
|
你如何调用GETS.未签名的Car X;GET(&;X);
|
|
|
|
|
|
因为它的扩张是众所周知的!对我来说是新的,但并非意外。添加适当的类型显示您知道您正在做什么。我不确定Gets()警告——可能是缓冲区可能初始化也可能未初始化的警告。这种警告有时很难消除,甚至不可能消除。
|
|
|
|
|
|
那就行了。今天的互联网已经足够了。我有几个家庭成员EPS和最后两个:发现EPS观看。
|
|
|
|
|
|
我要试着恢复:我试过了!#我为“Gets”做了一个简单的测试以强制这种情况,从头开始做一个简单的项目(18f46k22,默认的项目向导设置):Result:warning_main.c:4:warning:(520)function“_Serial_Get”从来不叫<=expectedwarning_main.c:9:warning(1498)表达式中的指针(SerialIGHET@缓冲区)可能没有目标& lt;=???????当Serial_Get用于主注释行时,则没有警告(有目标)。因此警告“表达式没有目标”,只发生函数没有使用而是编译的情况。它是在541号线的“PPTC(C)”呼叫中报告的。通常,当你有一个“未签名/签名的转换警告”时,它与一些促销、内部铸造等有关,而你并不知道。在这种情况下,我不知道移位操作符,它可能是某些情况下的原因,但不是所有的原因。谢谢。
|
|
|
|
|
|
从编译器的文档中,除非调用GETSH(),否则缓冲区是完全未初始化的。如果调用了GETSH(),则取决于…
|
|
|
|
|
|
它告诉您,虽然您传递了一个指针,但是引用的var没有以任何数据初始化。这是为了防止您除了返回RCREG1之外还想使用var。这是一个警告,您可以忽略它,in it。x或在compiler.prototype中设置一些错误级别:int lcd7920_str.(const char*String,int*Height);//no.(如果.nullNo错误或警告)。
|
|
|
|
|
|
你好,我不确定我自己是否解释得不好。关于指针的警告的关键是简单地声明和定义函数,但不使用。编译器正在警告未使用的函数,因此不可能传递任何参数,更不用说初始化了。它不能具有目标,因为该函数甚至在任何时候都不被调用,并且警告就像如果它正在被使用的情况一样。我假设这是XC8的另一个“特殊行为”……当然,我会忽略警告或者改变警告级别或者使用一些#pragma…。我仍然会得到“警告:(373)隐式签名到无符号转换”,我做了一个新的、干净的、最小的项目(PIC18F46k22),带有下一个代码,并且结果:C:Micro.xc8v1.45source.doprnt.c:541:warning:(373)隐式签名到无符号转换。
|
|
|
|
|
|
如果您愿意,可以在doprnt.c的本地副本中通过添加显式类型cast.IIRC来修复它。我们已经在1.45中声明了类型检查更加严格。虽然我不得不发现XC8没有检查值与枚举变量的附加。关于将一个枚举的值分配给某个其他枚举类型的变量,我没有期望更多(具有许多其他编译器的经验)。一位同事告诉我,在GCC中不存在枚举类型检查。
|
|
|
|
|
|
|
|
|
检查一些旧的8位代码。没有警告。空PTCH(char C){同时(!)!TXRG=C;}
|
|
|
|
|
|
XML解析错误:没有元素的基础位置:http://www. McCys.com……true&OpenPult= TtruLayle 1,第1栏:
|
|
|
|
|
|
你能删除DOTPRN吗?当我使用8位时,我从来没有DOTPRN。您需要PTCH(重写或弱)来调用Prtff和PoT。
|
|
|
|
|
|
在XC8中,DoprNT是Prttf调用来完成所有工作的函数。它是由编译器/链接器定制的吗?只需要所需的格式转换。我相信多普特叫帕奇。
|
|
|
|
|
|
嗯,我想张贴最后几天,但这是不可能的,“提交帖子”按钮不做任何事情…也许现在是这样,它是随机工作的……以防万一,因为每次我粘贴保存的评论,它看起来我都不能发布任何内容,我会说我避免警告,只是使用pragmas作为那个特定的一个。我希望有更多的时间来深入(再次)检查doprnt.c。如果你看到这张贴,伟大的…剧本在几天后就允许了!
|
|
|
|
|
|
您正在触及网络服务器防火墙。最常见的罪魁祸首是代码中出现“char”后跟“(”)。您可以将其放入附件中,但不能放入消息正文中。
|
|
|
|
|
|
很好…现在,我真的想要一个“警告”:)我怀疑这可能是某个字符序列,但是很难知道是否您没有收到任何消息,只是简单的它什么都不做。我用不同的编译器版本检查了XC8警告:1.38:no warning.1.45:warning。奥姆匹勒更挑剔。我想我也在问题上加了一个明确的解释。但是这不是可以概括的东西,因为doprn的部分是按需编译的(取决于printf格式参数),所以代码的新部分因此被编译……因此,我用pragma包装它,以禁用该警告(不仅如此,而且当使用printf格式的新参数时触发的任何警告)。mbrowningdoprn确实调用putch,但是是间接调用。事实上,只要我记得,doprn就使用宏pputc使用存储在结构中的指针指向函数调用实输出函数。但重点是我不介意它是如何完成的,但是编译器警告它自己的库的实现,是…奇怪的。无论如何,这个警告比潜在的问题更具审美性。但我不喜欢。降低警告级别不是一个选项很多次。事实上,保留默认值允许我检测一些引入逻辑错误的键入。逻辑错误是一种痛苦。无论如何,我得到的大部分警告是由于内部整数提升…使用8位的问题。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:56 , Processed in 1.074972 second(s), Total 104, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2447