我的编译器(DSP SHARC)非常挑剔。当我用备注进行构建时,出现此错误:
[cc1123] foo.c:1511 {D} remark: comparison of unsigned type
with signed type
while (taille > 0)
Run Code Online (Sandbox Code Playgroud)
两种解决方案:
编译器是正确的,我应该写
size_t taille;
...
while(taille > (size_t)0)
Run Code Online (Sandbox Code Playgroud)编译器很愚蠢,我应该忽略这一点
可能涉及ISO或MISRA标准的另一种解决方案
我该怎么办?
编辑
其实我最好写这样的例子
while(taille) {...}
Run Code Online (Sandbox Code Playgroud)
但是,这与我最初的问题无关
IMO,编译器比较弱或至少是学究的。要使此不必要的警告安静,请使用:
while (taille > 0u)
Run Code Online (Sandbox Code Playgroud)
顺便说一句:喜欢“两个解决方案:1. 2. 和 3.”
后期信用:现在,请参阅@Wintermute,比我自己早对此发表了类似评论。
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |