第十一章 Turbo C 2.0的使用及调试技术
第十一章 Turbo C 2.0的使用及调试技术
11.1 Turbo C的安装和启动
11.2 Turbo C的使用
11.3 C程序的编辑,
11.4
11.5 集成环境的参数设置
11.6
11.7 C程序上机操作总结
第十一章 Turbo C 2.0的使用及调试技术 11.1 Turbo C的安装和启动
11.1.1 Turbo C的安装
表 11.1Turbo C常用的头文件 1,头文件
第十一章 Turbo C 2.0的使用及调试技术
2,库文件
Turbo C的函数库分装在若干个库文件中, 存放着 Turbo
C的所有库函数的目标代码 。 库函数的种类和数目很多, 例
如数学函数, 字符函数, 字符串函数, 输入输出函数, 屏幕
和图形函数, 时间日期函数及与系统有关的函数等 。
所有库文件都存放在 TC子目录下的 <lib>子目录中 。
3,TC.EXE
Turbo C的集成环境 。
4,TCC.EXE
命令行编译程序 。 其使用方法类似于一般的 DOS命令,
可以将 C程序直接编译为目标代码和可执行程序 。
第十一章 Turbo C 2.0的使用及调试技术
5,实用工具程序
表 11.2Turbo C实用工具软件
第十一章 Turbo C 2.0的使用及调试技术
6,
在 TC目录下有一些 C语言的源程序 ( 文件名后缀
为,C), 都是一些实例程序, 用以说明某些 C成分的使
用方法, 例如 CALC.C,HELLO.C,DEMO.C等 。 建
议仔细阅读这些程序, 从中可以学到许多编程技巧 。
第十一章 Turbo C 2.0的使用及调试技术
11.1.2 Turbo C的启动
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t
D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b,s u m ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e / W a t c h
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
主菜单
编辑窗口
信息/ 监视窗口
功能键提示行
图 11.1Turbo C集成环境操作界面
第十一章 Turbo C 2.0的使用及调试技术
11.2.1 集成环境
1,
File 文件菜单 。 其功能是处理文件 ( 装入, 存盘, 选择,
建立, 换名写盘等 ) 。
Edit 编辑命令 。 编辑源程序 。
Run 运行菜单 。 其功能是控制运行程序 。
Compile 编译菜单 。 功能是编译, 生成目标代码及可执行
文件 。
Project 工程管理菜单 。 其功能是选择一个包含将要编译连
接的文件名的 project文件, 典型的工程文件名具有,prj扩展名 。
11.2 Turbo C的使用
第十一章 Turbo C 2.0的使用及调试技术
Options 参数设置菜单 。 设置集成工作环境的参数, 这
些设置影响诸如编译, 连接的任选, 库, 包含目录等 。 这
部分菜单的内容, 初学者要谨慎, 开始时不要改动 。
Debug 调试, 查错菜单 。 可帮助用户调试程序 。
Break/watch 断点 /监视菜单 。 可增加, 删除, 编辑表
达式, 及设置, 清除, 执行到断点 。
除了, Edit”( 编辑 ) 条目以外, 主菜单的每一条目都
对应于一个子菜单, 子菜单的各选项则对应于一个具体的
操作 。
第十一章 Turbo C 2.0的使用及调试技术
2,编辑窗口
用于编辑 C语言的源程序, 可在该窗口中逐行输入源
程序 。 编辑窗口还在第一行提供了一些编辑信息, 如:
Line,Col表示当前光标所在的位置; Insert代表当前的插
入状态按一下 Insert键此提示隐去, 为改写状态;程序名为
当前编辑区要存盘的文件名 。
第十一章 Turbo C 2.0的使用及调试技术
3,功能键提示行
F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu
功能热键的具体功能如下,
F1-Help 打开一个帮助窗口;
F5-Zoom
F6-Switch 激活编辑窗口或信息窗口 ( 使光标在两窗口间转换 ) ;
F7-Trace
F8-Step 在源文件调试模式下允许一次执行一步 ( 不进入另一函数 ) ;
F9-Make 产生,exe
F10-Menu 从活动窗口转到主菜单, 或从任一菜单转到活动窗口 。
ALT,F1-Last help F3-Pick F6-Swap F7/F8-Prev/Next Error F9-Compile
第十一章 Turbo C 2.0的使用及调试技术
4,信息窗口 /
编译和调试源程序时将所有编译文件的警告和错误都
列在信息窗口中, 同时在编辑窗口中指出错误在源文件中
的相应位置, 此时按回车键, 光标即跳至源程序的第一个
出错处 。
当用集成开发环境的调试器运行程序时, 监视窗口即
取代信息窗口, 可在其中加入监视表达式及每个需监视中
间过程的变量 ( 用 Ctrl-F7完成 ), 当用 F7或 F8运行程序时,
变量的中间值即一一显示在 watch窗口中 。
第十一章 Turbo C 2.0的使用及调试技术
11.2.2 Turbo C的联机帮助
Turbo C的联机帮助 ( help on-line) 有两种, 一种用于
提供关于 Turbo C集成环境的帮助信息, 使用热键 F1调出,
可以提供关于集成环境所有功能的使用信息 。 例如, 在编
辑状态下按 F1键, 则会得到关于编辑器的全部编辑命令的
使用方法 。 若通过菜单调出集成环境中的某个功能选项,
此时按下 F1键则可得到关于该功能选项的帮助信息 。
第十一章 Turbo C 2.0的使用及调试技术
第二种联机帮助是 C语言的联机手册, 用于调出有关 C
语言的语法说明 。 这种联机帮助的使用方法是,首先将光
标移到程序中需要解释的语法内容 ( 如库函数的函数名 )
上, 然后按下复合功能键 Ctrl-F1即可调出一个关于该语法
内容的说明窗口, 该窗口有详细的英文说明及应用示例,
阅读结束后, 可使用退出键 Esc返回编辑状态 。 该功能可
随时帮助学习者掌握函数, 语句的使用方法, 非常实用 。
第十一章 Turbo C 2.0的使用及调试技术
11.2.3 各下拉菜单的意义
1,File菜单 表 11.3 File菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
2,Edit 表 11.4 Turbo C编辑命令表
第十一章 Turbo C 2.0的使用及调试技术
3,Run
表 11.5 Run菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
4,Compile菜单
表 11.6Compile菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
5,Break watch菜单
表 11.7Break watch菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
11.3 C
11.3.1 编辑源程序
( 1) 按下 Alt-F键选择 File菜单 。
( 2) 选择 New,清除编辑窗口 ( 若编辑窗口已空, 这
一步可省略 ), 现在文件名为 Noname.C。
( 3) 编辑你的源程序 。
( 4) 按 Alt-F键选择 File菜单 。
( 5) 选择 Write to, 规定该程序的名字并存盘保存。
第十一章 Turbo C 2.0的使用及调试技术
如果源程序 (sample.c)已存在, 则可按下述步骤将源程
序加载到编辑器中,
( 1) 按下 Alt-F键选择 File菜单 。
( 2) 选择 LOAD( 按 L键, 或用向上, 向下键 (↑,↓
键 )移动加亮部分到 LOAD,再按回车键 ) 。 ( 以上两步可
直接按 F3键一次做到 ) 。
( 3) 键入 sample.c或从全部 C文件中选出 sample.c;
现已将程序 sample.c装入编辑器, 接下来可对编辑窗
口的源程序进行编辑修改, 便可做下一步了 。
第十一章 Turbo C 2.0的使用及调试技术
11.3.2 编译产生目标代码
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b,s u m ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e / W a t c h
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
C o m p i l e t o O B J
D, S A M P L E, O B J
M a k e E X E f i l e
D, S A M P L E, E X E
L i n k E X E f i l e
B u i l d a l l
P r i m a r y C f i l e,
G e t i n f o
图 11.2集成环境的编译子菜单
第十一章 Turbo C 2.0的使用及调试技术
11.3.3 连接产生可执行文件
1,连接 ( Compile,Link EXE file)
将目标文件和函数库连接, 生成一个可执行文件 。
2,制作 ( Compile,Make EXE file)
先检查源程序是否已经编译过, 如果尚未编译, 或者在
编译以后又修改了源程序, 则先编译, 然后再连接 。
3,建立 ( Compile,Build all)
无论源程序是否编译过, 均执行编译和连接工作, 相当
于连续执行编译和连接两项功能 。
第十一章 Turbo C 2.0的使用及调试技术
11.3.4 运行可执行文件
选择 Run子菜单中的 Run命令 ( 或 Ctrl-F9), 即可运行
可执行文件, 运行完成后立即回到编辑窗口 。 要查看运行结
果, 可按 Alt-F5键, 查看结束后按任意键即可返回编辑窗
口 。 若运行结果与期望值不符, 这时就需对源程序进行调试
修改 。 可执行文件也可独立在 MS-DOS状态下运行, 在 DOS
状态下, 只需键入:, 即可运行 。
第十一章 Turbo C 2.0的使用及调试技术
11.4 程序的查错及调试
11.4.1 语法错误的查找
1,
在编译过程中, 如果遇到程序中的语法错误, 则显示相
应的错误信息, 提示程序员修改程序 。 刚编好的程序中含有
错误是正常的, 因为即使是熟练的专业程序员也很难一次就
编写出完全没有错误的程序来 。 好在语法错误的修改不太困
难, 因为信息窗口会显示出错误的类型, 错误发生的位置及
错误的原因 。 其格式为
<错误性质 ><错误发生的位置 >,<错误内容 >
第十一章 Turbo C 2.0的使用及调试技术
例 11.1 编译 sample.c源程序,并改正其中的错误。
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e / W a t c h
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
图 11.3 Sample.c源程序
第十一章 Turbo C 2.0的使用及调试技术
图 11.4 有编译错误时的编译提示信息
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
M a i n f i l e, s a m p l e, c
C o m p i l i n g, E D I T O R →s a m p l e, c
T o t a l f i l e
L i n e s c o m p i l e d, 7 7
W a r n i n g, 0 0
E r r o r s, 2 2
A v a i l a b l e m e m o r y, 2 4 1 K
E r r o r s, P r e s s a n y
k e y
C o m p i l i n g
第十一章 Turbo C 2.0的使用及调试技术
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
C o m p i l e D, \ T C \ s a m p l e, c,
E r r o r D, \ T C \ s a m p l e, c 6, U n d e f i n e d S y m b o l ' s u m ' i n f u n c t i o n m a i n
E r r o r D, \ T C \ s a m p l e, c 7, S t a t e m e n t m i s s i n g ; i n f u n c t i o n m a i n
M e s s a g e
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
s u m = a + b
E r r o r D, \ T C \ s a m p l e, c 6, U n d e f i n e d S y m b o l ' s u m ' i n f u n c t i o n m a i n
图 11.5有编译错误时的信息提示窗口
第十一章 Turbo C 2.0的使用及调试技术
11.4.2 运行错误的查找与基本调试手段
1,在监视窗口中加入监视表达式( Break/Watch,
Add Watch或 Ctrl-F7)
2,编辑,删除监视表达式( Break/Watch,Edit
Watch,Delete watch)
3,单步执行( Run,Trace into,F7或 Step over,F8)
4,使用 Ctrl-Break
5,执行到当前光标行( Run,Goto cursor或 F4)
6,程序重置( Run,Program reset,Ctrl-F2)
第十一章 Turbo C 2.0的使用及调试技术
7,设置和使用断点( Break/watch,Toggle breakpoint,
Ctrl-F8)
8,查看函数调用情况( Debug,Call stack,Ctrl-F3)
9,查找函数( Debug,Find function)
10,更新屏幕内容( Debug,Refresh display)
第十一章 Turbo C 2.0的使用及调试技术
在调试过程中, 程序员还应掌握一些基本的程序调试
手段 。 例如,
( 1) 简化程序。
( 2) 分支检查。
( 3) 边界检查。
( 4) 测试数据检验。
( 5) 增加输出语句。
第十一章 Turbo C 2.0的使用及调试技术
11.4.3 调试举例
例 11.2 计算 1至 100之间的奇数之和及偶数之和。
# include <stdio.h>
main()
{ int i,sum1,sum2;
sum1=sum2=0;
for (i=1; i<=5; i++)
{ if (i%2!=0)
sum1+=i; /* sum1存放奇数和 */
sum2+=i; /* sum2存放偶数和 */
}
第十一章 Turbo C 2.0的使用及调试技术
printf("The even number, sum1=%d\n",sum1);
printf("The odd number,sum2=%d\n",sum2);
}
对源程序进行编译,连接后,执行结果为
The even number,sum1=9
The odd number,sum2=15
第十一章 Turbo C 2.0的使用及调试技术
例 11.3 F7,F8区别示例 。
假设编辑窗口的源程序如下,
main()
{ int a,b,c;
scanf("%d,%d",&a,&b); /* 输入 a,b的值 */
c=sum(a,b); /* 调 sum函数求 a,b之和 */
printf("Sum is %d\n",c);
}
sum(int x,int y) /* 求 x,y的和 */
{ int z;
z=x+y;
return(z);
}
第十一章 Turbo C 2.0的使用及调试技术
例 11.4 加密程序 。 输入一行字符, 按以下规律进行
转换:字母字符变成其后的第四个字母, 即 A→E,a→e,
W→A,X→B,Y→C,Z→D,非字母字符不变 。 输出转换后
的字符 。
假设我们在编辑窗口输入的源程序如下,
# include <stdio.h>
main()
{ char c;
while((c=getchar())!=′\n′)
第十一章 Turbo C 2.0的使用及调试技术
{ if ((c>=′a′ && c<=′z′) || (c>=′A′ && c<=′Z′)) /* 注 1 */
{ c=c+4;
if (c>′Z′ || c>′z′) /* 注 2 */
c=c-26;
}
printf("%c",c);
}
}
对源程序进行编译,连接,输入字符, ABChina23!”后,执
行结果为
EFGRSXK23!
第十一章 Turbo C 2.0的使用及调试技术
11.5 集成环境的参数设置
1,编译程序参数设置子菜单( Compiler)
表 11.8Compiler菜单选项
第十一章 Turbo C 2.0的使用及调试技术
2.连接程序参数设置子菜单( Linker)
表 11.9 Linker菜单选项表
第十一章 Turbo C 2.0的使用及调试技术
3,集成环境参数设置子菜单( Environment)
表 11.10 Environment
第十一章 Turbo C 2.0的使用及调试技术
4,目录参数设置子菜单( Directories)
表 11.11 Directories菜单选项表
第十一章 Turbo C 2.0的使用及调试技术
5,用户程序的命令行参数 ( Arguments)
如果用户程序需要命令行参数, 则在调试阶段可以使用本
选项设置命令行参数, 这样就不用在调试时脱离集成环境输入
命令行参数了 。
实际上, 集成环境的参数设置内容很多, 还有许多选项和
子菜单没有详细介绍 。 大部分选项的缺省值对于通常的编程,
调试工作很合适, 一般无需作调整 。 集成环境的连机帮助信息
内容非常丰富, 使用也很简单, 只要调出所要了解的菜单选项,
然后按下 F1键即可 。
第十一章 Turbo C 2.0的使用及调试技术
11.6 多文件程序的实现
1,用 # include命令
先后独立编辑若干个文件, 并分别起名存在磁盘上, 如,
pro1.c,pro2.c,por3.c。 在 pro1.c中的开头加两行,
# include " pro2.c
# include " pro3.c
就将 pro2.c,pro3.c包含到了 pro1.c 中, 编译时, 系统自
动将这两个文件放到 pro1.c文件内的最前面, 作为一个整体进
行编译, 而不是分三个文件编译 。 再经过连接, 最后形成可
执行文件 pro1.exe,可在 TC环境下运行, 也可在 DOS下运行 。
第十一章 Turbo C 2.0的使用及调试技术
2,用 link
先分别对三个源文件进行编译, 得到三个目标文件
pro1.obj,pro2.obj和 pro3.obj。 然后在 DOS状态下用 link
把 3个目标文件 (.obj文件 )连接起来 。 可用以下命令,
link pro1+pro2+pro3
得到一个可执行的文件 pro1.exe,然后再运行。
第十一章 Turbo C 2.0的使用及调试技术
3,用 Turbo C
(1) 先后编辑若干个文件, 如,pro1.c,pro2.c,pro3.c。
(2) 在编译状态下, 建立一个, 项目文件,, 它不包括
任何程序语句, 而只包括组成程序的所有的文件名 。 即,
pro1.c
pro2.c
pro3.c
扩展名,c可以省写 。 三个文件顺序任意, 可以写在同一行
上, 如,
pro3.c pro2.c pro1.c
如果这些源文件不在当前目录下,应指出路径。
第十一章 Turbo C 2.0的使用及调试技术
(3) 将以上内容存盘, 文件名自定, 但扩展名必须
为,prj(表示为 project文件 )。 今设文件名 gch。 在 Turbo C主
菜单中选择 Project菜单, 按回车键后出现下拉菜单, 找到
其中的 Project name项并按回车键, 屏幕上会出现一个对话
框, 询问项目文件名 。 输入项目文件名 gch.prj以代替 *.prj。
此时子菜单中的 Project Name后面显示出项目文件名 gch.prj,
表示当前准备编译的是 gch中包括的文件 。
*.prj
Project Name
第十一章 Turbo C 2.0的使用及调试技术
(4) 按功能键 F9,进行编译连接, 系统先后将 3个文
件编译成目标文件, 并把它们连接成一个可执行文件
gch.exe。
(5) 按 Ctrl+F9键,即可运行可执行文件 gch.exe。
第十一章 Turbo C 2.0的使用及调试技术
11.7 C程序上机操作总结
TC
E D I T ( 形成
*, c )
F 2
C t r l - F 9 ( 形成
*, O B J,*, E X E )
进入T u r b o C 编辑 存盘 运行
语法有错
语法无错 A l t - F 5 看运行结果 结果不对
结果正确
查错修改
选N e w 做下一题
选Q u i t 退出T u r b o C
第十一章 Turbo C 2.0的使用及调试技术
11.1 Turbo C的安装和启动
11.2 Turbo C的使用
11.3 C程序的编辑,
11.4
11.5 集成环境的参数设置
11.6
11.7 C程序上机操作总结
第十一章 Turbo C 2.0的使用及调试技术 11.1 Turbo C的安装和启动
11.1.1 Turbo C的安装
表 11.1Turbo C常用的头文件 1,头文件
第十一章 Turbo C 2.0的使用及调试技术
2,库文件
Turbo C的函数库分装在若干个库文件中, 存放着 Turbo
C的所有库函数的目标代码 。 库函数的种类和数目很多, 例
如数学函数, 字符函数, 字符串函数, 输入输出函数, 屏幕
和图形函数, 时间日期函数及与系统有关的函数等 。
所有库文件都存放在 TC子目录下的 <lib>子目录中 。
3,TC.EXE
Turbo C的集成环境 。
4,TCC.EXE
命令行编译程序 。 其使用方法类似于一般的 DOS命令,
可以将 C程序直接编译为目标代码和可执行程序 。
第十一章 Turbo C 2.0的使用及调试技术
5,实用工具程序
表 11.2Turbo C实用工具软件
第十一章 Turbo C 2.0的使用及调试技术
6,
在 TC目录下有一些 C语言的源程序 ( 文件名后缀
为,C), 都是一些实例程序, 用以说明某些 C成分的使
用方法, 例如 CALC.C,HELLO.C,DEMO.C等 。 建
议仔细阅读这些程序, 从中可以学到许多编程技巧 。
第十一章 Turbo C 2.0的使用及调试技术
11.1.2 Turbo C的启动
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t
D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b,s u m ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e / W a t c h
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
主菜单
编辑窗口
信息/ 监视窗口
功能键提示行
图 11.1Turbo C集成环境操作界面
第十一章 Turbo C 2.0的使用及调试技术
11.2.1 集成环境
1,
File 文件菜单 。 其功能是处理文件 ( 装入, 存盘, 选择,
建立, 换名写盘等 ) 。
Edit 编辑命令 。 编辑源程序 。
Run 运行菜单 。 其功能是控制运行程序 。
Compile 编译菜单 。 功能是编译, 生成目标代码及可执行
文件 。
Project 工程管理菜单 。 其功能是选择一个包含将要编译连
接的文件名的 project文件, 典型的工程文件名具有,prj扩展名 。
11.2 Turbo C的使用
第十一章 Turbo C 2.0的使用及调试技术
Options 参数设置菜单 。 设置集成工作环境的参数, 这
些设置影响诸如编译, 连接的任选, 库, 包含目录等 。 这
部分菜单的内容, 初学者要谨慎, 开始时不要改动 。
Debug 调试, 查错菜单 。 可帮助用户调试程序 。
Break/watch 断点 /监视菜单 。 可增加, 删除, 编辑表
达式, 及设置, 清除, 执行到断点 。
除了, Edit”( 编辑 ) 条目以外, 主菜单的每一条目都
对应于一个子菜单, 子菜单的各选项则对应于一个具体的
操作 。
第十一章 Turbo C 2.0的使用及调试技术
2,编辑窗口
用于编辑 C语言的源程序, 可在该窗口中逐行输入源
程序 。 编辑窗口还在第一行提供了一些编辑信息, 如:
Line,Col表示当前光标所在的位置; Insert代表当前的插
入状态按一下 Insert键此提示隐去, 为改写状态;程序名为
当前编辑区要存盘的文件名 。
第十一章 Turbo C 2.0的使用及调试技术
3,功能键提示行
F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu
功能热键的具体功能如下,
F1-Help 打开一个帮助窗口;
F5-Zoom
F6-Switch 激活编辑窗口或信息窗口 ( 使光标在两窗口间转换 ) ;
F7-Trace
F8-Step 在源文件调试模式下允许一次执行一步 ( 不进入另一函数 ) ;
F9-Make 产生,exe
F10-Menu 从活动窗口转到主菜单, 或从任一菜单转到活动窗口 。
ALT,F1-Last help F3-Pick F6-Swap F7/F8-Prev/Next Error F9-Compile
第十一章 Turbo C 2.0的使用及调试技术
4,信息窗口 /
编译和调试源程序时将所有编译文件的警告和错误都
列在信息窗口中, 同时在编辑窗口中指出错误在源文件中
的相应位置, 此时按回车键, 光标即跳至源程序的第一个
出错处 。
当用集成开发环境的调试器运行程序时, 监视窗口即
取代信息窗口, 可在其中加入监视表达式及每个需监视中
间过程的变量 ( 用 Ctrl-F7完成 ), 当用 F7或 F8运行程序时,
变量的中间值即一一显示在 watch窗口中 。
第十一章 Turbo C 2.0的使用及调试技术
11.2.2 Turbo C的联机帮助
Turbo C的联机帮助 ( help on-line) 有两种, 一种用于
提供关于 Turbo C集成环境的帮助信息, 使用热键 F1调出,
可以提供关于集成环境所有功能的使用信息 。 例如, 在编
辑状态下按 F1键, 则会得到关于编辑器的全部编辑命令的
使用方法 。 若通过菜单调出集成环境中的某个功能选项,
此时按下 F1键则可得到关于该功能选项的帮助信息 。
第十一章 Turbo C 2.0的使用及调试技术
第二种联机帮助是 C语言的联机手册, 用于调出有关 C
语言的语法说明 。 这种联机帮助的使用方法是,首先将光
标移到程序中需要解释的语法内容 ( 如库函数的函数名 )
上, 然后按下复合功能键 Ctrl-F1即可调出一个关于该语法
内容的说明窗口, 该窗口有详细的英文说明及应用示例,
阅读结束后, 可使用退出键 Esc返回编辑状态 。 该功能可
随时帮助学习者掌握函数, 语句的使用方法, 非常实用 。
第十一章 Turbo C 2.0的使用及调试技术
11.2.3 各下拉菜单的意义
1,File菜单 表 11.3 File菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
2,Edit 表 11.4 Turbo C编辑命令表
第十一章 Turbo C 2.0的使用及调试技术
3,Run
表 11.5 Run菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
4,Compile菜单
表 11.6Compile菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
5,Break watch菜单
表 11.7Break watch菜单的命令选项
第十一章 Turbo C 2.0的使用及调试技术
11.3 C
11.3.1 编辑源程序
( 1) 按下 Alt-F键选择 File菜单 。
( 2) 选择 New,清除编辑窗口 ( 若编辑窗口已空, 这
一步可省略 ), 现在文件名为 Noname.C。
( 3) 编辑你的源程序 。
( 4) 按 Alt-F键选择 File菜单 。
( 5) 选择 Write to, 规定该程序的名字并存盘保存。
第十一章 Turbo C 2.0的使用及调试技术
如果源程序 (sample.c)已存在, 则可按下述步骤将源程
序加载到编辑器中,
( 1) 按下 Alt-F键选择 File菜单 。
( 2) 选择 LOAD( 按 L键, 或用向上, 向下键 (↑,↓
键 )移动加亮部分到 LOAD,再按回车键 ) 。 ( 以上两步可
直接按 F3键一次做到 ) 。
( 3) 键入 sample.c或从全部 C文件中选出 sample.c;
现已将程序 sample.c装入编辑器, 接下来可对编辑窗
口的源程序进行编辑修改, 便可做下一步了 。
第十一章 Turbo C 2.0的使用及调试技术
11.3.2 编译产生目标代码
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b,s u m ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e / W a t c h
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
C o m p i l e t o O B J
D, S A M P L E, O B J
M a k e E X E f i l e
D, S A M P L E, E X E
L i n k E X E f i l e
B u i l d a l l
P r i m a r y C f i l e,
G e t i n f o
图 11.2集成环境的编译子菜单
第十一章 Turbo C 2.0的使用及调试技术
11.3.3 连接产生可执行文件
1,连接 ( Compile,Link EXE file)
将目标文件和函数库连接, 生成一个可执行文件 。
2,制作 ( Compile,Make EXE file)
先检查源程序是否已经编译过, 如果尚未编译, 或者在
编译以后又修改了源程序, 则先编译, 然后再连接 。
3,建立 ( Compile,Build all)
无论源程序是否编译过, 均执行编译和连接工作, 相当
于连续执行编译和连接两项功能 。
第十一章 Turbo C 2.0的使用及调试技术
11.3.4 运行可执行文件
选择 Run子菜单中的 Run命令 ( 或 Ctrl-F9), 即可运行
可执行文件, 运行完成后立即回到编辑窗口 。 要查看运行结
果, 可按 Alt-F5键, 查看结束后按任意键即可返回编辑窗
口 。 若运行结果与期望值不符, 这时就需对源程序进行调试
修改 。 可执行文件也可独立在 MS-DOS状态下运行, 在 DOS
状态下, 只需键入:, 即可运行 。
第十一章 Turbo C 2.0的使用及调试技术
11.4 程序的查错及调试
11.4.1 语法错误的查找
1,
在编译过程中, 如果遇到程序中的语法错误, 则显示相
应的错误信息, 提示程序员修改程序 。 刚编好的程序中含有
错误是正常的, 因为即使是熟练的专业程序员也很难一次就
编写出完全没有错误的程序来 。 好在语法错误的修改不太困
难, 因为信息窗口会显示出错误的类型, 错误发生的位置及
错误的原因 。 其格式为
<错误性质 ><错误发生的位置 >,<错误内容 >
第十一章 Turbo C 2.0的使用及调试技术
例 11.1 编译 sample.c源程序,并改正其中的错误。
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e / W a t c h
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
图 11.3 Sample.c源程序
第十一章 Turbo C 2.0的使用及调试技术
图 11.4 有编译错误时的编译提示信息
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
M e s s a g e
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
M a i n f i l e, s a m p l e, c
C o m p i l i n g, E D I T O R →s a m p l e, c
T o t a l f i l e
L i n e s c o m p i l e d, 7 7
W a r n i n g, 0 0
E r r o r s, 2 2
A v a i l a b l e m e m o r y, 2 4 1 K
E r r o r s, P r e s s a n y
k e y
C o m p i l i n g
第十一章 Turbo C 2.0的使用及调试技术
L i n e 1 C o l 1 I n s e r t I n d e n t T a b F i l l U n i n d e n t D, \ T C \ S A M P L E, C
m a i n ( )
{ i n t a,b ;
a = 8 ;
b = 9 ;
s u m = a + b
p r i n t f ( " s u m = % d \ n ",s u m ) ;
}
C o m p i l e D, \ T C \ s a m p l e, c,
E r r o r D, \ T C \ s a m p l e, c 6, U n d e f i n e d S y m b o l ' s u m ' i n f u n c t i o n m a i n
E r r o r D, \ T C \ s a m p l e, c 7, S t a t e m e n t m i s s i n g ; i n f u n c t i o n m a i n
M e s s a g e
F 1 - H e l p F 2 - Z o o m F 6 - S w i t c h F 7 - T r a c e F 8 - S t e p F 9 - M a k e F 1 0 - M e n u
F i l e E d i t C o m p i l e P r o j e c t O p t i o n s D e b u g B r e a k / w a t c h
E d i t
s u m = a + b
E r r o r D, \ T C \ s a m p l e, c 6, U n d e f i n e d S y m b o l ' s u m ' i n f u n c t i o n m a i n
图 11.5有编译错误时的信息提示窗口
第十一章 Turbo C 2.0的使用及调试技术
11.4.2 运行错误的查找与基本调试手段
1,在监视窗口中加入监视表达式( Break/Watch,
Add Watch或 Ctrl-F7)
2,编辑,删除监视表达式( Break/Watch,Edit
Watch,Delete watch)
3,单步执行( Run,Trace into,F7或 Step over,F8)
4,使用 Ctrl-Break
5,执行到当前光标行( Run,Goto cursor或 F4)
6,程序重置( Run,Program reset,Ctrl-F2)
第十一章 Turbo C 2.0的使用及调试技术
7,设置和使用断点( Break/watch,Toggle breakpoint,
Ctrl-F8)
8,查看函数调用情况( Debug,Call stack,Ctrl-F3)
9,查找函数( Debug,Find function)
10,更新屏幕内容( Debug,Refresh display)
第十一章 Turbo C 2.0的使用及调试技术
在调试过程中, 程序员还应掌握一些基本的程序调试
手段 。 例如,
( 1) 简化程序。
( 2) 分支检查。
( 3) 边界检查。
( 4) 测试数据检验。
( 5) 增加输出语句。
第十一章 Turbo C 2.0的使用及调试技术
11.4.3 调试举例
例 11.2 计算 1至 100之间的奇数之和及偶数之和。
# include <stdio.h>
main()
{ int i,sum1,sum2;
sum1=sum2=0;
for (i=1; i<=5; i++)
{ if (i%2!=0)
sum1+=i; /* sum1存放奇数和 */
sum2+=i; /* sum2存放偶数和 */
}
第十一章 Turbo C 2.0的使用及调试技术
printf("The even number, sum1=%d\n",sum1);
printf("The odd number,sum2=%d\n",sum2);
}
对源程序进行编译,连接后,执行结果为
The even number,sum1=9
The odd number,sum2=15
第十一章 Turbo C 2.0的使用及调试技术
例 11.3 F7,F8区别示例 。
假设编辑窗口的源程序如下,
main()
{ int a,b,c;
scanf("%d,%d",&a,&b); /* 输入 a,b的值 */
c=sum(a,b); /* 调 sum函数求 a,b之和 */
printf("Sum is %d\n",c);
}
sum(int x,int y) /* 求 x,y的和 */
{ int z;
z=x+y;
return(z);
}
第十一章 Turbo C 2.0的使用及调试技术
例 11.4 加密程序 。 输入一行字符, 按以下规律进行
转换:字母字符变成其后的第四个字母, 即 A→E,a→e,
W→A,X→B,Y→C,Z→D,非字母字符不变 。 输出转换后
的字符 。
假设我们在编辑窗口输入的源程序如下,
# include <stdio.h>
main()
{ char c;
while((c=getchar())!=′\n′)
第十一章 Turbo C 2.0的使用及调试技术
{ if ((c>=′a′ && c<=′z′) || (c>=′A′ && c<=′Z′)) /* 注 1 */
{ c=c+4;
if (c>′Z′ || c>′z′) /* 注 2 */
c=c-26;
}
printf("%c",c);
}
}
对源程序进行编译,连接,输入字符, ABChina23!”后,执
行结果为
EFGRSXK23!
第十一章 Turbo C 2.0的使用及调试技术
11.5 集成环境的参数设置
1,编译程序参数设置子菜单( Compiler)
表 11.8Compiler菜单选项
第十一章 Turbo C 2.0的使用及调试技术
2.连接程序参数设置子菜单( Linker)
表 11.9 Linker菜单选项表
第十一章 Turbo C 2.0的使用及调试技术
3,集成环境参数设置子菜单( Environment)
表 11.10 Environment
第十一章 Turbo C 2.0的使用及调试技术
4,目录参数设置子菜单( Directories)
表 11.11 Directories菜单选项表
第十一章 Turbo C 2.0的使用及调试技术
5,用户程序的命令行参数 ( Arguments)
如果用户程序需要命令行参数, 则在调试阶段可以使用本
选项设置命令行参数, 这样就不用在调试时脱离集成环境输入
命令行参数了 。
实际上, 集成环境的参数设置内容很多, 还有许多选项和
子菜单没有详细介绍 。 大部分选项的缺省值对于通常的编程,
调试工作很合适, 一般无需作调整 。 集成环境的连机帮助信息
内容非常丰富, 使用也很简单, 只要调出所要了解的菜单选项,
然后按下 F1键即可 。
第十一章 Turbo C 2.0的使用及调试技术
11.6 多文件程序的实现
1,用 # include命令
先后独立编辑若干个文件, 并分别起名存在磁盘上, 如,
pro1.c,pro2.c,por3.c。 在 pro1.c中的开头加两行,
# include " pro2.c
# include " pro3.c
就将 pro2.c,pro3.c包含到了 pro1.c 中, 编译时, 系统自
动将这两个文件放到 pro1.c文件内的最前面, 作为一个整体进
行编译, 而不是分三个文件编译 。 再经过连接, 最后形成可
执行文件 pro1.exe,可在 TC环境下运行, 也可在 DOS下运行 。
第十一章 Turbo C 2.0的使用及调试技术
2,用 link
先分别对三个源文件进行编译, 得到三个目标文件
pro1.obj,pro2.obj和 pro3.obj。 然后在 DOS状态下用 link
把 3个目标文件 (.obj文件 )连接起来 。 可用以下命令,
link pro1+pro2+pro3
得到一个可执行的文件 pro1.exe,然后再运行。
第十一章 Turbo C 2.0的使用及调试技术
3,用 Turbo C
(1) 先后编辑若干个文件, 如,pro1.c,pro2.c,pro3.c。
(2) 在编译状态下, 建立一个, 项目文件,, 它不包括
任何程序语句, 而只包括组成程序的所有的文件名 。 即,
pro1.c
pro2.c
pro3.c
扩展名,c可以省写 。 三个文件顺序任意, 可以写在同一行
上, 如,
pro3.c pro2.c pro1.c
如果这些源文件不在当前目录下,应指出路径。
第十一章 Turbo C 2.0的使用及调试技术
(3) 将以上内容存盘, 文件名自定, 但扩展名必须
为,prj(表示为 project文件 )。 今设文件名 gch。 在 Turbo C主
菜单中选择 Project菜单, 按回车键后出现下拉菜单, 找到
其中的 Project name项并按回车键, 屏幕上会出现一个对话
框, 询问项目文件名 。 输入项目文件名 gch.prj以代替 *.prj。
此时子菜单中的 Project Name后面显示出项目文件名 gch.prj,
表示当前准备编译的是 gch中包括的文件 。
*.prj
Project Name
第十一章 Turbo C 2.0的使用及调试技术
(4) 按功能键 F9,进行编译连接, 系统先后将 3个文
件编译成目标文件, 并把它们连接成一个可执行文件
gch.exe。
(5) 按 Ctrl+F9键,即可运行可执行文件 gch.exe。
第十一章 Turbo C 2.0的使用及调试技术
11.7 C程序上机操作总结
TC
E D I T ( 形成
*, c )
F 2
C t r l - F 9 ( 形成
*, O B J,*, E X E )
进入T u r b o C 编辑 存盘 运行
语法有错
语法无错 A l t - F 5 看运行结果 结果不对
结果正确
查错修改
选N e w 做下一题
选Q u i t 退出T u r b o C