`
还可以
  • 浏览: 80975 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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只对源文件可见。

分享到:
评论

相关推荐

    C语言中static变量使用方法

    ### C语言中static变量使用方法详解 在C语言编程中,`static`关键字扮演着一个非常重要的角色,尤其是在处理变量的存储方式、作用域以及生命周期方面。本文将深入探讨C语言中`static`变量的使用方法,包括静态局部...

    C语言练习-函数.pdf

    - 应避免在函数中过多使用外部变量,以减少全局状态的依赖,提高代码可读性和可维护性。 9. **函数调用和实参**: - 调用函数时,实参的值传给形参,但形参不能直接修改实参的值。 - 在C语言中,函数调用时的...

    c语言学习-c语言第章.pptx

    例如,使用`#include`指令引入头文件,使用`extern`声明在其他文件中定义的变量或函数,利用`#define`进行宏定义,以及利用`static`修饰局部变量或函数以保持其作用域的局部性。 总结来说,学习C语言,掌握结构化...

    C语言程序设计-变量.pptx

    存储类型决定了变量的作用域和生命周期,如auto(局部变量)、static(静态变量)、extern(外部变量)等。而在C语言中,数据类型则定义了变量能够存储的数据种类,如int(整型)、char(字符型)、float(浮点型)...

    C语言变量类型C语言变量类型.doc

    C语言中的变量类型是编程的基础,它决定了变量的存储方式、生命周期和作用域。下面将详细解释这些变量类型: 1. **auto** 变量: - `auto` 是默认的变量类型,通常用于函数内部定义的变量。它们在函数执行时分配...

    C语言中级-9再论函数

    但可以通过指针作为参数实现传引用的效果,使得函数能修改外部变量。 5. 函数指针: 函数指针是一种特殊的指针,它存储了函数地址,可以用来调用函数。这在回调函数、动态调用函数等场景中非常有用。 6. 局部与...

    嵌入式C语言深入 ----嵌入式C的必须资料

    从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出关于嵌入式C语言的几个关键知识点,包括变量修饰符(auto, const, register, static, volatile, extern)的使用,以及指针与数组的定义。下面将对这些知识...

    变量的存储类型、外部变量、static内部变量讲解

    ### 外部变量与static内部变量的区别 #### 外部变量 - **定义**:未使用`static`关键字的全局变量。 - **特点**: - 生存期贯穿整个程序运行过程。 - 作用域覆盖整个源程序,即使在多个源文件中也可以访问。 - **...

    高级语言程序设计(C语言)-7.函数

    4. **外部变量**(`extern`): 用于声明一个在其他源文件中定义的变量。 #### 7.10 内部函数和外部函数 1. **内部函数**: 只能在定义它的源文件中使用,不能被其他源文件访问。 2. **外部函数**: 可以在多...

    08-变量类别与编译预处理-自己使用的C语言教程PPT-适合老师备课或者自学.pptx

    总结来说,理解C语言中的变量类别和编译预处理是掌握C语言的基础。全局变量、局部变量、静态变量和寄存器变量各有其特点和用途,而编译预处理则提供了代码复用和文本替换的手段,增强了代码的可读性和效率。在实际...

    单片机C语言实例-输出50个矩形脉冲.zip

    在这个实例中,“单片机C语言实例-输出50个矩形脉冲.zip”是一个教学资源,它通过C语言编程展示了如何使用单片机生成50个矩形脉冲。C语言是编写单片机程序的常用语言,因为它的效率高、灵活性强。 1. C语言基础: ...

    C语言全局/局部变量

    总的来说,理解和正确使用全局变量与局部变量是C语言编程的基础,也是提升代码质量和可维护性的关键。在实际开发中,我们需要根据需求和性能考虑选择合适的变量类型,并尽可能地减少全局变量的使用,以降低代码的...

    C语言课件-8PPT课件.pptx

    4. **变量的存储类型**:在C语言中,变量有不同的存储类型,如自动变量(`auto`)、静态变量(`static`)、寄存器变量(`register`)等。 5. **作用范围**:变量的作用范围是指变量存在的生命周期及其可见性,主要...

    2021-2021-C语言-期末复习提纲(1).docx

    - 内部变量(局部变量)与外部变量(全局变量)的区别。 - 当内部变量与外部变量同名时的处理方法。 6. **生存期**: - 动态存储(`auto`, `register`修饰的变量)与静态存储(`static`修饰的变量)的区别。 - ...

    C语言程序设计(第2版)-2期 拓展知识2-6 扩充和限定外部变量的作用域.pdf

    本篇将详细介绍如何通过`extern`关键字来扩充外部变量的作用域以及如何使用`static`关键字来限定外部变量的作用域。 ### 扩充外部变量的作用域 外部变量默认的作用域是整个源文件,但如果想让它们在特定函数或另一...

    C语言的变量PPT课件.pptx

    外部变量的声明有两种情况:在同一源文件内声明,以及在其他源文件中声明并使用。 了解这些基本概念后,程序员可以更好地管理内存,避免命名冲突,并有效地控制变量的生命周期和访问权限,这对于编写高质量的C语言...

    C语言-基础day3作业

    本资源摘要信息涵盖了C语言的基础知识点,包括原码、反码和补码的概念、变量的存储类型、输入输出函数、运算符等。 一、原码、反码和补码 * 原码:十进制数的二进制形式,人可以看懂。 * 反码:原码转换成补码的...

    51单片机C语言变量定义.pdf

    标题《51单片机C语言变量定义》和描述《51单片机C语言变量定义》揭示了本文档主要围绕51单片机使用C语言进行编程时变量定义的具体知识点展开。51单片机通常指的是基于Intel 8051微控制器架构的一系列微控制器,广泛...

    C语言中static用法大全

    - `static`关键字在C语言中有多种用途,包括但不限于定义全局静态变量、局部静态变量以及静态函数。 - 它们各自的作用域、存储位置以及初始化规则有所不同。 - 使用`static`关键字可以帮助开发者更好地管理变量的...

Global site tag (gtag.js) - Google Analytics