昨天再次实践了计算器程序,这次把函数的声明,全局变量的声明,还有#include文件全部放在一个头文件中起名叫:heads.h。
然后把几个函数由原来的分别分放于每个文件中,改为存放在几个逻辑划分的文件中,正像作者前面分的
那样,把整个程序分为分析器、驱动程序、异常处理、输入函数这几部分。
分析器文件存放prim和term还有expr函数;而驱动程序文件中存放main函数;异常处理文件存放error函数;输入函数文件中存放get_token函数。但每个文件都要首先声明#include"heads.h"。
这样使原来零乱的难以管理和连接的文件整合为易于连接和理解的程序。
昨天晚上看了有关源文件和头文件的内容,觉得略有收获。
一个程序要运行一定要经过编译、连接、运行。这个过程。
程序员将编好的原文件交给编译器后,便一起首先要进行预处理工作,把所有宏都展开,再按#include引
入头文件;是源文件成为编译单元。然后再交由连接器把所有编译单元集中起来。
与我先前遇到的情况一样,一个结构混乱的程序在连接时必然无法通过,即使在编译时没有报错。所以我认为在编译之前一定要做好两个工作。
一、为保证程序编译成功,必须提供各种声明,为鼓励的分析一个编译单位提供有关程序的其他部分的类型信息。
二、在写程序时要将程序按逻辑结构分成多组文件,也可以按物理结构分。
所谓的逻辑结构就是按名字空间、函数来分;而物理结构则是按文件来分。
1、按A名字空间分。A名字空间包含:文件(A-1函数)、文件(A-2函数)、文件(A-2函数)……
2、按文件分。A文件包含1号名字空间、2号名字空间……
然后把几个函数由原来的分别分放于每个文件中,改为存放在几个逻辑划分的文件中,正像作者前面分的
那样,把整个程序分为分析器、驱动程序、异常处理、输入函数这几部分。
分析器文件存放prim和term还有expr函数;而驱动程序文件中存放main函数;异常处理文件存放error函数;输入函数文件中存放get_token函数。但每个文件都要首先声明#include"heads.h"。
这样使原来零乱的难以管理和连接的文件整合为易于连接和理解的程序。
昨天晚上看了有关源文件和头文件的内容,觉得略有收获。
一个程序要运行一定要经过编译、连接、运行。这个过程。
程序员将编好的原文件交给编译器后,便一起首先要进行预处理工作,把所有宏都展开,再按#include引
入头文件;是源文件成为编译单元。然后再交由连接器把所有编译单元集中起来。
与我先前遇到的情况一样,一个结构混乱的程序在连接时必然无法通过,即使在编译时没有报错。所以我认为在编译之前一定要做好两个工作。
一、为保证程序编译成功,必须提供各种声明,为鼓励的分析一个编译单位提供有关程序的其他部分的类型信息。
二、在写程序时要将程序按逻辑结构分成多组文件,也可以按物理结构分。
所谓的逻辑结构就是按名字空间、函数来分;而物理结构则是按文件来分。
1、按A名字空间分。A名字空间包含:文件(A-1函数)、文件(A-2函数)、文件(A-2函数)……
2、按文件分。A文件包含1号名字空间、2号名字空间……