完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用一个项目上的LINT,它会发出以下警告:TyPulf签名短长度int INT24.t;…STNDIN.H:28:错误13:Stdit.h在Microchip提供的XC8V1.41包含目录中。代码出现在第28行,我不得不认为声明短和长的错误是错误的,并且同意皮特。然而,文件来自Microchip,我认为Gururs比我更了解这类事情,因此声明是有效的——但是有人能解释一下为什么这是有效的,以及如何让皮特忽略它而不把那个特定的信息关闭?许多谢罪
以上来自于百度翻译 以下为原文 Using Lint on a project it makes the following warning... typedef signed short long int int24_t ; ...stdint.h:28: Error 13: Bad Type The stdint.h is in the XC8v1.41include directory as supplied by Microchip. And the code appears on line 28. I cannot but think that declaring something as both short and long is wrong and agree with Lint. However, the file comes from Microchip, who I presume has gurus that know more about this sort of thing than me, and therefore the declaration is valid - but can anyone explain to me why this is valid and how to get lint to ignore it without turning that particular message off? Many thanks Neil |
|
相关推荐
6个回答
|
|
“短长”让我笑得就像我遇见它一样——几年前,它是一种非标准型,24英寸宽,…事实上,这听起来很滑稽,但这是唯一的命名方法。我基本上从来没有使用过皮棉,所以我不确定你是否能“告诉”它和它一起生活。
以上来自于百度翻译 以下为原文 "short long" made me laugh as well as I met it - years ago It's a non-standard type, 24bits wide and... indeed it sounds funny but it's the only way to name them. I basically never used Lint, so am not sure if you can "tell" it to live with it... |
|
|
|
嗨,如果你去XC8V1.42,你可能会发现那些24位整数类型的类型定义被注释掉了。然后你可以在没有任何抱怨的情况下运行LICT。但是如果你想在程序中使用24位整数类型…迈西尔
以上来自于百度翻译 以下为原文 Hi, If you go to XC8 v1.42, you may find that those type definitions for 24 bit integer types are commented out. Then you may run Lint without complaints about that. but if you want to use 24 bit integer type in a program ... Mysil |
|
|
|
|
|
|
|
C语言标准不禁止混合或复制限定符的短和长,事实上GNU扩展长隆18年前正式成为语言的一部分。正如GNU使用长的长度来表示(64位)类型比一个(32位)长,我们使用了一个短的长(24位)类型比一个(32位)长的短。然而,在V1.42中,扩展已经从XC8中删除,因为我理解它主要是使编译器与XC16和XC32 WHIC一致。H不支持它。(在我不那么谦虚的意见中,我们应该在保留的编译器的命名空间中使用特殊标识符,这些编译器对于编译器支持的所有类型(例如u8、8、8、16、16、2、24、2、32、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、1、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2)的关系进行了讨论。NG点,V1.41中的类型;然后第三方工具,如LILT将不会看到标准集的限定符未定义。但是,这不是XC8现在工作的方式。)编辑:在任何情况下(也IMMHSO),LICT不应该戳穿它的鼻子,而不是标准的头文件的内容——它知道标准必须说明什么,因此在每个头包含了程序之后,程序可以依靠什么。
以上来自于百度翻译 以下为原文 The C language standard does not forbid mixing or duplicating the qualifiers short and long, and in fact the GNU extension long long was formalised as part of the language 18 years ago. Just as GNU used long long to indicate a (64 bit) type longer than a (32 bit) long, we used short long for a (24 bit) type shorter than a (32 bit) long. However, as of v1.42 the extension has been removed from XC8, as I understand it primarily to bring this compiler into line with XC16 and XC32 which do not support it. (In My Not-So-Humble Opinion, we should use special identifiers within the reserved-for-the-Implementer namespace for all of the types natively supported by the compiler e.g. _U8, _S8, _U16, _S16, _U24, _S24, _U32, _S32, _F24, _F32 for the unsigned and signed integer, and floating point, types in v1.41; then third-party tools like Lint wouldn't see undefined-by-the-standard sets of qualifiers. But that's not the way XC8 works right now.) Edit: In any case (also IMnsHO) Lint should not be poking its nose into the content of standard headers - it knows what the Standard says must be defined and thus what a program can depend on after including each header. |
|
|
|
要么让皮特接受“短长”,要么修改STnt.h,用一些αIFIFF…把一些短的或长的骨头作为U24的别名扔掉。@ MLPAS是,皮特必须戳进所有的头,并且真的不在乎“标准”。除非标准的头由一些散列或类似的东西来保证,每个人都可以自由地修补这些。记住不断重复的PLI。B讨论?通过修补和重新编译解决的问题…P.S.:没有人是神圣的!
以上来自于百度翻译 以下为原文 Either make lint accept the "short long" or modify stdint.h with some #ifdef _lint ... , throwing lint some short or long bone as an alias for U24. @ mlp As it is, lint has to poke into all headers included and really doesn't care about "standard" or not. Unless the standard headers are secured by some hash or alike, everybody is free to tinker with these. Remember the ever-repeating plib discussions? Problems solved by tinkering and recompiling... P.S.: No human being is sacrosanct ! |
|
|
|
实际上,有一个皮尔特参数告诉皮特什么是图书馆,而忽略它们。
以上来自于百度翻译 以下为原文 Actual there is a lint parameter to tell lint what is a library, and to ignore them. |
|
|
|
只有小组成员才能发言,加入小组>>
5171 浏览 9 评论
2001 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3176 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
737浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
635浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 06:17 , Processed in 1.307515 second(s), Total 59, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号