今天遇到了一个十分奇怪的问题,在用全局变量时导致栈溢出,而局部变量却正常,使我百思不得其解。各种查阅的结果都是局部变量可能栈溢出,而全局变量不会。
无可奈何,只能到群里求助大佬,原来我忽略了一个要点,我定义的是一个常量,而非一个变量。
但我再次尝试,却发现奇迹般的常量也能运行了!
再此询问大佬,才让我意识到我第二次定义的是局部常量,而栈溢出的是宏常量,如下
由于宏常量是替换了i,所以相当于后续递归的条件中,永远等于100,也就是永远为真,递归永远不会结束,这才导致了栈溢出。
今天遇到了一个十分奇怪的问题,在用全局变量时导致栈溢出,而局部变量却正常,使我百思不得其解。各种查阅的结果都是局部变量可能栈溢出,而全局变量不会。
无可奈何,只能到群里求助大佬,原来我忽略了一个要点,我定义的是一个常量,而非一个变量。
但我再次尝试,却发现奇迹般的常量也能运行了!
再此询问大佬,才让我意识到我第二次定义的是局部常量,而栈溢出的是宏常量,如下
由于宏常量是替换了i,所以相当于后续递归的条件中,永远等于100,也就是永远为真,递归永远不会结束,这才导致了栈溢出。