c语言基础-外部变量,static变量的使用

简单栈的实现:

stack.c

#define MAX 100

int sp = 0;

int val[MAX];

void push(int value){

 if(sp<MAX){

   val[sp++]=value;

}else{

   printf("wrong");

}

}

 

int pop(){

  if(sp>0){

   return val[--sp];

}else{

  return 0;

}

}

 

ceshi.c

#include<stdio.h>

int main(){

  void push(int val);

 //对外部变量的使用 

extern int sp;  

int pop();

  push(3);

  push(4);

  push(5);

  push(6);

  printf("the sp is%d",sp);

 

}

 

同时编译stack.c和ceshi.c,会看到sp为4,证明确实在ceshi.c中引用到了stack.c中的外部变量。

 

将statck.c中的外部变量用static修饰,ceshi.c不做改动,然后同时编译两个文件,你会看到undefined的报错,这就很好的验证了static只对源文件可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值