如何将size_t和pid_t与int进行比较

Mar*_*rco 1 c

使用逻辑运算符size_tpid_t类型的正确方法是什么?我的意思是:写下面的东西是合法的吗?
例如:

size_t sz;  
/* some kind of assignment */  
if(sz > 0){  
  /* do something */  
}  
Run Code Online (Sandbox Code Playgroud)

例如:

void f(pid_t pid,...){  
  if(pid > 0){  
    /* do something */  
  }  
  /* ... */  
}
Run Code Online (Sandbox Code Playgroud)

..或者我必须做一些演员?

编辑
好的答案;
现在,考虑到被告知,有人可以给我一个编码的理由:

void *my_malloc(size_t size){
  if(size <= 0){
    return NULL;
  }
  /* something else... */
}  
Run Code Online (Sandbox Code Playgroud)

我的老师写了那段代码.
是否有意义?
我不知道为size_t类型保留了多少位(它依赖于实现)
但肯定是无符号(你的答案),为什么上面的表达式?

CB *_*ley 6

是的,这是合法的.>在进行比较之前,两个参数都将被提升为匹配类型.

请注意,对于无符号类型,例如size_t,> 0表示相同!= 0.