TC编程手册之一

2016-02-19 17:17 16 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

  本文是TC的第一部分,主要介绍一些TC相关的基础知识,并着重针对循环、变量等TC基本概念中的易混的淆部分加以辨析,即是一份编程初学者的指南,也可算作是对《C how to program》的一些补充。 在正式进入编程部分之前,让我们先详细了解一下Turbo C的编译环境,以便在编程时可以更加得心应手。

  File菜单

  Pick--快速读取最近的9个文件。(真的是很方便的功能,特别是在DOS时代 ^-^)

  Write to--把文件内容换名存盘,支持DOS通配符。(相当于现在的Save as...)

  OS shell--暂时离开Turbo C回到DOS环境执行DOS命令,输入命令EXIT即可回到Turbo C.(DOS时代的DOS窗口?)

  Run菜单

  Program reset--清楚内存中的调试信息,释放内存空间。(中断点和变量信息不会被清除)

  Go to cursor--运行程序到光标所在位置。

  Trace into--以单步方式执行当前程序,当前执行行会以高亮显示。(此操作可进入被调用函数)

  Step over--功能同Trace into,但不会进入被调用函数。

  Compile菜单

  Make EXE file--编译、连接程序,生成可执行文件。

  Link EXE file--只连接不编译程序,生成可执行文件。(需要有目标程序即.OBJ文件)

  Build all--重新编译项目里的所有文件(见project菜单部分),但不进行过时检查。(即如果源文件的日期比目标文件日期更早,则不对源文件进行编译)

  Project菜单

  Project name--选择一个包含待编译源文件名的项目文件。(读者如果给这部分内容比较困惑,可以把问题贴到放飞网的论坛上,将由本人或其它放飞网技术人员给予解答)

  Auto dependencies--如果将开关打开,编译时将检查源文件与对应的.OBJ文件日期和时间,如时间不同则重新进行编译。

  Options菜单

  请参见本站lzc、小壮的《Turbo C 2.0 设置详解》,这里不再赘述。

  Debug菜单

  Evaluate--当程序运行时,这个命令可以查看并修改内存中的变量和其它一些类似的项目。

  Call stack--程序运行时用于检查堆栈情况。

  Find function--程序运行时用来显示指定的函数。

  Refresh display--如果编辑窗口偶然被用户窗口重写了,可用此命令恢复编辑窗口的内容。

  Display swapping--用于控制编辑窗口和用户窗口的交换条件,有smart, always, none三种模式。

  Break/watch菜单

  用来控制断点及监视表达式

  看完上面的简介,相信你已经对TC的功能感到惊讶了,想当初在十几年以前的DOS时代,能够拥有一个功能如此强大的编译器可是众多程序员梦寐以求的事情呢。所以现在的同学大可不必嫌弃TC界面简陋,功能有限,着急去碰什么VC,还是先静下心来,把TC学好吧。

  对TC有了进一步的了解之后,下面让我们进入C语言本身的部分。

  了解了执行过程,现在让我们来说说语句。语句是组成程序的基本单位,它能完成特定的操作,语句的有机组合序列能实现指定的计算处理功能。比较难于掌握的是流程控制语句,下面我们就对流程控制语句中易混淆的部分进行一下说明。

  选择语句(If和Switch)

  一般情况下,用if语句实现简单分支结构程序,用switch和break实现多分支结构程序。虽然用嵌套if语句也能实现多分支结构程序,但用switch和break实现的多分支结构程序更简洁明了,这一点初学者应当多加注意。还应注意的是由于表达式的值非0为真,0为假,所以具有值的表达式也可做为if语句的控制条件。

  循环语句(for、while和do-while)

  首先,读者应了解一点,一般用某种循环语句写的程序段,也能用另外两种循环语句实现。当然,在实际应用中,for语句多用于循环次数明确的问题,而无法确定循环次数的问题采用while语句或do-while语句比较自然。读者还应注意掌握for语句三个表达式的多种变化,例如省略部分表达式或全部表达式,甚至把循环体也写入表达式当中,而循环体本身成为了空语句,以满足循环语句的语法要求。

  转移语句(break、continue、return、goto)

  对于break和continue,这里提醒读者一下break除了用在switch语句中外,还常被用在循环语句中强制结束循环,而continue则只用于跳过某次循坏。如果某个switch语句存在于循环之中,而switch中又包含了continue语句,则这个continue将跳过整次循环,而非switch中的某个case。return语句请详见函数部分。goto语句可以方便的在程序的执行流程中进行跳转,但goto语句会搅乱程序的流程,降低程序的可读性,在结构化的程序设计之中,不提倡使用goto语句,ANSI C的作者曾说;Formally, the goto is never necessary, and in practice it is almost always easy to write code without it.所以在这里就不对goto语句做更多地介绍了。如果实在想玩一玩的话,就用它来退出深层嵌套吧,例如:
  for (...)
   for (...){
    ...
    if (disaster)
     goto error;
   }
  ...
  error: ...

  最后,让我们来讨论一下变量,变量是对程序中数据所占用内存空间的一种抽象。我们先来了解一下变量的类型。

  ANSI标准规定整形变量属性表

  

  数据类型

  占用字节数

  二进制位

  取值范围

  int

  2

  16

  -32768--32767

  short[int]

  2

  16

  -32768--32767

  long[int]

  4

  32

  -2147483648--2147483647

  unsigned[int]

  2

  16

  0--65535

  unsigned long[int]

  4

  32

  0--4294967295

  实数基本类型表

  

  实数类型

  存储字节数

  最小数值范围

  有效位

  float

  4

  10^-38--10^38

  6-7

  double

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  8

  10^-308--10^308

  15-16

  long double

  16

  10^-4932--10^4932

  18-19

  在C中,我们还可以设置变量的存储属性,已确定变量的存储位置,C中定义了4种存储属性:auto register extern和static 。

  TC中默认的是auto型,作用域为当前函数,在函数结束时存储空间被释放。

  register型变量直接存于CPU的寄存器中,其特点是大大加快了运算速度,register变量只能是int型或char型,且存在个数限制(TC中为2个),因此register型变量多用来充当计数器变量使用。由于变量储存在寄存器中,所以无法对其进行地址操作,例如无法使用取地址运算符"&"求register变量的地址。顺便提一下,TC会自动把访问频繁的变量存入寄存器中(需将相关选项设为on)。

  external型变量必须定义在所有函数的外部,为变量开辟存储空间。在函数中如果要访问这个变量,需要用extern进行声明。当然,如果external型变量定义在函数调用之前,extern可以省略。由于extern变量可以方便的随时调用,所以有人趋向于把大多数变量定义为extern型变量,但是extern变量总是存在于内存之中,不仅占用了大量的存储空间,而且变量数值容易在无意中被改变,引起不可预见性的错误,且使程序难于修改。

  对于一些初学者来说,static变量可能比较难于理解,这里举个例子来说明static与auto的区别。例如定义变量a分别为static型和auto型,且设其值为1。"int x=1;"的含义是对变量赋初值,等价于下列两个语句"int x; x=1;",而"static int x=1;"的含义是说明一个static型变量并对其进行初始化,初始化是在程序执行之前,由编译程序一次性为变量赋的初值"x=1",而在实际运行时不再对变量进行赋值操作。

  为了便于理解,特对四种存储变量总结如下:

  四种存储变量的特征

  

  性能

  auto

  extern

  static

  register

  外部

  内部

  记忆能力

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  yes

  yes

  yes

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  多个函数共享

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  yes

  yes

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  不同文件共享

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  yes

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  no

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  初始化赋值

  random

  0

  0

  0

  random

  作用域

  当前函数

  整个程序

  当前文件

  当前函数

  当前函数

  

  

  搞清楚了变量之后,对TC的基本介绍到此也算告一段落,如果您觉得本文确实为您学习TC提供了一些帮助的话,那么敬请您关注TC编程手册之二---函数和数组。

来源:http://www.tulaoshi.com/n/20160219/1614842.html

延伸阅读
标签: ASP
    在做网络关键事务的应用开发中,特别是有关有特定面向性的应用开发时,我们需要考虑的问题要比单机编程多得多. 这些因扰主要是来自于几方面:   首先,是所有基于WEB的应用都是建立在开放系统上的,客户端几乎总能看得见你或多或少的程序源码痕迹,虽然这对网络开发的快速壮大发展起到了良好的作用,但对于许多习惯...
TC是美国BORLAND 公司在IBM PC机上开发的一个高效、优化的C编译程序,它自带高效的全屏幕编辑程序,在集成开发环境下可支持编辑、编译、连接调试和运行等过程连续完成。     TC提供了与汇编语言的接口和在C程序中直接插入汇编指令代码的功能,支持以“远调用”和“近调用”方式来调用使用汇编语言编写的函数。   &n...
标签: Web开发
script src=/jslib/jquery/jquery-latest.pack.js/script  p height=1001学习jquery/p spanval()可以取值;val(s)可以赋值/spanbr/ divinput type="text" id="mm" value="mm"button  id=get取值/button button  id=put赋值/button /div button id=an展开/button div id=test...
前段时间因为学习的需要,整理了一下XPath和XQuery的基本资料,在查资料的过程中,觉得很痛苦,因为大陆这方面的资料实在太少了,用过之后就想放着也是放着,不如挂到网上吧。个人希望以后多挂一些这方面的资料。如果有时间,我会把XQuery的规范翻译过来——只是为了自己方便使用而已。 XPath查询语言 1. XPath简介 XPath也是由...
标签: Web开发
本文配合免费下载的Kaxaml 工具,演示XAML 的一些基本用法。关于Kaxaml 工具的介绍和下载,请参考文章:推荐一款免费下载 XAML 编辑调试工具-Kaxaml。 XAML 系列文章为学习笔记,这是我今年春节期间安排的学习任务。 StackPanel、Menu、Expander 元素的演示 Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/prese...

经验教程

254

收藏

73
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部