举个例子: int nTest = 0; if (nTest - sizeof(int) < 0) { printf("###/n"); } ###没有打印出来 再举个例子: int nTest = 0; if (nTest - (int)sizeof(int) < 0) { printf("***/n"); } ***打印出来了 原因:sizeof()返回值是size_t也就是unsigned int,而int会隐式转换成unsigned int。 这个问题其实显而易见,但是不小心就会出错, 在编码过程中,经常会使用sizeof(struct)加入运算, 这时候就需要考虑类型隐式转换的问题 |