无符号类型与有符号类型的比较

时间:2015-02-20 14:40:46

标签: c

我的编译器(DSP SHARC)非常挑剔。当我使用备注构建时,我收到此错误:

[cc1123] foo.c:1511 {D} remark: comparison of unsigned type
          with signed type
      while (taille > 0)

两种解决方案:

  1. 编译器是对的,我应该写

    size_t taille;
    ...
    while(taille > (size_t)0)
    
  2. 编译器很愚蠢,我应该忽略这句话

  3. 可能涉及ISO或MISRA标准的另一种解决方案

  4. 这句话我该怎么办?

    修改

    其实我最好像

    那样写这个例子
     while(taille) {...}
    

    但是,这与我最初的问题无关

1 个答案:

答案 0 :(得分:4)

IMO,编译器很弱或者至少是迂腐。要安静此不需要的警告,请使用:

while (taille > 0u) 

BTW:喜欢“两种解决方案:1。2. 3。”


延迟信用:现在看到@Wintermute在此之前的评论与此类似。