• C语言之程序结构


    一个好的程序首先要有好的程序结构,我从变量和结构两个方面来做分析。

    一、浅谈程序中的变量

    一个程序架构最基本的就是程序变量,谈到程序中的变量,我们应该考虑两部分,一方面是变量的作用域,一方面是变量的生存期。

    我们就从这两个角度对变量进行分析:

    (1)全局变量
    全局变量的声明要放在主函数之前,它的作用域是整个程序全局,生存期是程序整个周期。

    (2)局部变量
    局部变量是在某个局部声明的变量,它的作用域为特定区域,例如函数体内声明的变量作用域在函数体内,
    函数体执行完成则完成。如果变量声明在一个for语句里面,则他作用的区域也就是这个for语句。同样生命
    周期也之在特定区域。

    (3)静态局部变量
    static 静态局部变量所声明的变量作用域是某个特定函数体,但是其生命周期是整个程序的生命周期。

    注意:
    函数体不能传递回本地变量的地址,具有危险性,因为函数体执行完成后,则局部变量的内存区被释放。

    举个例子来看

    #include <stdio.h>
    int value = 0;//全局变量
    void fun();

    void fun1(); int main() { int i=0; //全局变量 printf("main:%d ",i);//此处使用的i应该是处于main级别下的i值。 fun(); printf("main:%d ",i);//此处打印的依然是main下的i fun(); fun1(); printf("main:%d ",i);//此处打印的依然是main下的i fun1(); printf("main:%d ",i);//此处打印的依然是main下的i } void fun() { int i = 10;//此处的i值只作用于这个函数体而且每次进入函数就定义一次,离开函数就释放空间 printf("fun:%d ",i);//此处打印的是这个局部变量每次都是1 } void fun1() { static int i = 10;//静态局部变量,其只声明一次,而一直存活 printf("fun1:%d ",i); i++; }

      

    二、程序结构分析

    大的程序一般都要进行模块化编程
    每个模块都对应着头文件和源文件
    源文件的内容是程序的主题部分,函数的内容
    头文件的内容是程序的解释说明,包括全局变量的声明和所有对外公开函数的声明

    (1)头文件
    1、头文件包含问题
    #include "" 与 #include < >
    ""是先在当前目录下寻找此文件,如果没有再去系统设定的目录下寻找,一般自己写的文件就用""
    <>是直接去系统设定的目录下寻找文件,一般都是系统提供的文件用<>

    要注意防重复包含
    所以需要在每个头文件作如下编写
    (标准头文件结构)
    #ifndef _MAX_H_
    #define _MAX_H_
    //程序区
    #endif

    2、头文件中的变量要想被外部调用应该用extern
    extern int i;

    注意:声明与定义的区别
    定义一个变量,定义一个函数是在程序中要产生代码的。
    而声明在程序中是不生成代码的,因为声明只是告诉编译器我有这个东西,让编译器记住。
    例如在主函数之前我们都要有函数的声明,而函数体则在主函数之后定义。

    (2)源文件
    包含函数的解释(源代码)

  • 相关阅读:
    原码、反码、补码,计算机中负数的表示
    java 解惑系列
    (转载) 深入JVM学习笔记-安全性
    理解Java对象序列化
    关于Arrays.asList 函数的一些 陷阱
    JAVA设计模式之单例模式 (转载)
    Educational Codeforces Round 76 D
    总结
    bzoj3531: [Sdoi2014]旅行 (树链剖分 && 动态开点线段树)
    bzoj3626: [LNOI2014]LCA (树链剖分)
  • 原文地址:https://www.cnblogs.com/flyingjun/p/5171311.html
Copyright © 2020-2023  润新知