
warning: ordered comparison of pointer with integer zero
警告:整数の0とのポインタの比較
[-Wextra]
■1.ポインタは負値にならない
#include <stdio.h>
#include <sys/shm.h>
int main(void) {
void *ptr = shmat(0,0,0);
if(ptr < 0){//成立する事はない
perror("shmat");
}
}
成功時ポインタを返し
失敗時-1を返す関数の失敗判定でポインタは0より小さくならないので、このif文が成立する事はありません。
■2.(void *)-1と比較する
#include <stdio.h>
#include <sys/shm.h>
int main(void) {
void *ptr = shmat(0,0,0);
if(ptr == (void *)-1){//成立する事がある
perror("shmat");
}
}