栈:是程序存放数据内存区域之一,特点是LIFO(后进先出)。
PUSH:入栈
POP:出战
使用场景:
1.保存动态分配的自动变量使用栈
2.函数调用时,用栈传递函数参数,半寸返回地址,返回值
代码sum.c
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#define MAX (1UL << 20)
typedef unsigned long long u64;
typedef unsigned int u32;
u32 max_addend=MAX;
u64 sum_till_MAX(u32 n)
{
u64 sum;
n++;
sum=n;
if(n<max_addend)
sum+=sum_till_MAX(n);
return sum;
}
int main(int argc,char** argv){
u64 sum=0;
if((argc==2) && isdigit(*(argv[1])))
max_addend=strtoul(argv[1],NULL,0);
if(max_addend>MAX||max_addend==0){