c语言在进行运算的时候,一个有符号整数和一个无符号整数参与运算,结果将是一个无符号数。这也是常见的无解,一不小心就写出了死循环。
当然,这里的i-DELTA直接写为i-4 是没问题的,因为4默认是有符号数,除非你加上U

#include <stdio.h>

void main(){
	int i=30;
	#define DELTA sizeof(int)
	for(;i-DELTA>=0;i--){
		printf("%d\n",i);
	}
}

类似的例子在go中是行不通的,go干脆直接报错,说无符号数不能和有符号数一起运算,只能进行类型转换以后再运算。看来go还是很明智的避免了这些陷阱啊!

相关文章:

  • 2021-06-27
  • 2022-12-23
  • 2021-11-15
  • 2021-09-20
  • 2022-12-23
猜你喜欢
  • 2018-06-05
  • 2022-12-23
  • 2021-10-04
  • 2021-10-07
  • 2022-01-18
相关资源
相似解决方案