TCL语言及其文件的认识、理解和编辑
Tcl语言基础教程

set x 10
set y 100 + $x
这时,y的值还不是我们想要的值110,而是10+100,因为Tcl解释器把10+100看成是一个字符串而不是表达式;y要想得到值
110,还必须用命令置换,使得Tcl会把10+100看成一个表达式并求值。
string tolower string [first] [last]
string replace string first last [newstring]
string equal [-nocase] [-length int] string1 string2
string match [-nocase] pattern string如果pattern匹配string,那么返回1,否则返回0.
Tcl变量根据其结构的复杂程度分为“简单变量”和“数组变量”两类。
(1)简单变量
一个Tcl的简单变量包含两个部分:名字和值,其中名字和值都可以是任意字符串。不过为了更好的使用变量置换功能,变量名
最好按C\C++语言中标识符的命名规则命名。这是因为Tcl解释器在分析一个变量置换时,只把从$符号往后直到第一个不是字母、数
个新字符串,并返回。例如:
set msg [format "%s is %d years old" $name $age]
【scab】
语法:scan string formatsting varName varName ...
scan命令可以认为是format命令的逆,其功能类似于ANSI C中的sscanf函数。它按formatsting提供的格式分析string字
TCL基础教程——(1)入门

TCL学习记录最近学习了tcl,有一些体会,写出来供大家一起交流和切磋!p.s.:由于鄙人只是用tcl进行常规流程控制和仿真验证平台的搭建,因此涉及到较为高级的用法以及tk界面的东东就没有涉猎,如果有哪位仁兄对高级用法很有心得,可以与我联系哦。
Note:鄙人此处挑拣了tcl中较为基本,也是十分实用的几个方面做粗略描述,后面还提出了一个较小的工程设计。
虽然不是很完整,但个人认为麻雀虽小,五脏也是聚全了^_^。
细节性的东西还劳烦大家参考active state的tcl manual。
一.Tcl是一种基于字符串的、解释性命令的语言,语法规则简单、易学。
Variable substitution: $, nestableCommand substitution: [], 其实,有了command substitution实际上就表示命令可以嵌套,即:一个命令的结果可以作为别的命令的参数。
Backslash substitution: \, 与c语言类似,反斜杠主要用于在字符中插入诸如换行符、空格、[、$等被tcl解释器当作特殊符号对待的字符。
双引号和花括号除反斜杠歪,tcl提供另外两种方法来使得解释器把分隔符和置换符等特殊字符当作普通字符。
Tcl 解释器对双引号中的各种分隔符将不做处理,但是对换行符以及$、[]两种置换符还会做特殊处理。
而在花括号中,所有特殊字符都将成为普通字符,失去其特殊意义。
二、数组数组是一些元素的集合。
Tcl的数组和普通的计算机语言中的数组有很大的区别。
在tcl中,不能单独申明一个数组,数组只能和数组元素一起申明。
(感觉更像是c语言中的结构体)tcl不支持复杂的数据类型,这一点是tcl受指责最多的方面。
e.g.:set day(Monday) 1set day(Tuesday) 2数组的置换和简单的变量置换类似:e.g.:set a Mondayset day(Monday) 1set b $day(Monday) //b的值为1,即day(Monday)set c $day($a) //c的值为1,即day(Monday)三、listList这个概念在tcl中是用来表示集合的。
Tcl语言

Tcl简介(一):Tcl 语法Tcl 语法Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对Tcl有很好的描述和说明。
如果你看起来很吃力,那是因为Tcl与一般的语言有一些不同之处,刚开始可能有一些不理解,但很快就会掌握的。
请坚持一下,我能坚持写完,你至少也应该坚持读一遍吧!Tcl Overview这篇文章里包含了几乎Tcl 的全部。
文章的作者是Tcl的缔造者John Ousterhout,对Tcl的诠释非常清楚。
Introduction 简介Tcl 代表"tool command language" 发音为"tickle." 。
它实际上包含了两个部分:一个语言和一个库。
首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。
它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。
其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的过程)的库函数。
应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。
但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。
应用程序使用Tcl作为它的命令语言有三个好处:1 Tcl提供了标准语法,一旦用户掌握了Tcl就可以很容易的发布命令给基于Tcl的程序。
2 Tcl实现了很多的功能,使你的工作变得很方便。
3 TCl可作为程序间通信的接口。
Tcl Interpreters 解释器在Tcl的数据结构中的核心是Tcl_Interp.一个解释器包含了一套命令,一组变量和一些用于描述状态的东西。
每一个Tcl命令是在特定的Tcl_Interp中运行的,基于Tcl的应用程序可以同时拥有几个Tcl_Interp。
tcl点板原理和技巧

tcl点板原理和技巧TCL点板原理和技巧TCL(Tool Command Language)点板是一种常用的编程语言,它具有简单易学、功能强大的特点。
在编写TCL脚本时,掌握点板的原理和技巧是非常重要的。
本文将介绍TCL点板的原理和一些常用的技巧。
一、TCL点板的原理TCL点板的原理可以简单地理解为将一系列命令按照特定的顺序组织起来,形成一个可以重复使用的模板。
当需要执行某个功能时,只需调用该点板即可。
点板的原理主要包括以下几个要点:1. 命令组织:点板是由多个命令组成的,每个命令都有特定的功能。
这些命令可以按照特定的顺序排列,形成一个完整的点板。
2. 参数传递:点板可以接受参数,通过参数的传递可以使点板具有更强的灵活性。
参数可以是字符串、数值等各种类型,具体根据点板的功能而定。
3. 循环结构:点板可以包含循环结构,使得某些命令可以重复执行。
循环结构可以根据条件进行判断,从而决定是否继续执行。
4. 条件判断:点板可以包含条件判断结构,根据条件的不同执行不同的命令。
条件判断可以使点板具有更强的适应性和灵活性。
二、TCL点板的技巧除了了解点板的原理,掌握一些常用的技巧也是非常重要的。
下面介绍几个常用的TCL点板技巧:1. 参数传递技巧:在调用点板时,可以传递不同的参数,从而实现不同的功能。
参数的传递可以通过点板的定义来实现,也可以通过外部变量的方式来传递。
2. 循环技巧:循环结构是点板中常用的技巧之一。
通过使用循环结构,可以重复执行某个命令或一组命令。
循环结构可以使用for循环、while循环等方式实现。
3. 条件判断技巧:条件判断是点板中常用的技巧之一。
通过使用条件判断结构,可以根据不同的条件执行不同的命令。
条件判断可以使用if语句、switch语句等方式实现。
4. 错误处理技巧:在点板的执行过程中,可能会出现一些错误。
为了保证点板的稳定性和可靠性,需要添加错误处理的机制。
可以使用try-catch语句来捕获和处理错误。
TCL语言笔记:TCL基础语法

TCL语⾔笔记:TCL基础语法⼀、什么是TCLTcl 全称是 Tool command Language。
它是⼀个基于字符串的命令语⾔,基础结构和语法⾮常简单,易于学习和掌握。
Tcl 语⾔是⼀个解释性语⾔,所谓解释性是指不象其他⾼级语⾔需要通过编译和联结,它象其他 shell 语⾔⼀样,直接对每条语句顺次解释执⾏。
Tcl 数据类型简单。
对 Tcl 来说,它要处理的数据只有⼀种——字符串。
Tcl 将变量值以字符串的形式进⾏存储,不关⼼它的实际使⽤类型。
⼆、TCL的基本语法1.输出:tcl使⽤”puts"关键字来作为输出语句[语法] : puts ?-nonewline? ?channelId? stringTcl 的输出命令是“puts”,将字符串输出到标准输出channelId。
语法中两个问号之间的参数为可选参数。
puts hello结果=> helloputs –nonewline "hello hello"结果=>hello hello但如果输出⼀段有空格的⽂本,则要⽤双引号或者花括号括起来-nonewline 选项告诉 puts 不输出回车换⾏。
注意:双引号和花括号的作⽤是将多个词组织成⼀个变元,但他们是有差别的!这种差别就是在处理“替换操作”时,前者允许替换发⽣,⽽后者则可能会阻⽌替换。
关于两者⽤法与差别以后会陆续讲到。
在这⾥两者作⽤相同。
2.赋值: tcl 使⽤“set”关键字来定义参数,不必指定变量值的类型,因为变量值的类型仅⼀种——字符串。
为变量赋值时,会为变量开辟⼀段内存空间来存储变量值。
[语法] set varName [value]set a Hello ;#定义变量 a 并赋值=>Helloputs $a ;#输出变量值=>Helloset a “Hello world” ;#重新赋值=>Hello worldset a “Hello world”=> Test Tcl ;#输出变量值,此时不加”$”puts $a=>Hello world ;#输出变量值,此时要加”$”puts a=> a ;#输出字符”a”set b $a=>Hello worldputs $b=>Hello world ;#将 a 的值赋给 b3.替换(1):$“$”符实现引⽤替换,⽤以引⽤参数值。
TCL语言学习入门

语言简介
Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。是tool command language的缩写,发音为"tickle”。实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。
1
2
set a 20; set b 4;
set c [expr $a/$b];#此时的c的值为5
除此之外,expr还能够识别一些函数及其返回值如下:
abs(x) x的绝对值
round(x) x舍入后得到的整数值
sin(x) x的正弦
…………………………………..
举个例子:
1
set a [expr sin(0.3)];#计算0.3的正弦
switch $element{
# 判断element的值
}
}
for是最常用的循环。其基本结构为:
for {initialization} {condition} {increment} {body}
例如:
1
for{set i 0} {$i< 10} {incr i} {puts $i;} #将打印出0到9
1
2
tcl语法认识

tcl语法认识TCL(Tool Command Language)是一种基于字符串的命令语言,语法结构简单明了。
下面是对TCL 语法的一些基本认识:1.命令与参数:•TCL中每个命令由一个或多个单词组成,第一个单词是命令名,后面的单词是该命令的参数。
命令与参数之间必须用空格或制表符隔开。
•命令之间必须用换行符或分号隔开。
1.变量:•TCL中的变量以美元符号()开开开开开开开开开开开开开开myVariable表示一个名为“myVariable”的变量。
•变量可以在命令中直接使用,无需事先声明。
2置换:•TCL支持三种置换:变量置换、命令置换和反斜杠置换。
•变量置换:$[variable]•命令置换:$[command]•反斜杠置换:$[command]3字符串操作:•TCL支持字符串连接、子串提取、字符串替换等操作。
例如,expr substr($string, 1, 3)表示提取字符串“string”的前三个字符。
4控制结构:•TCL支持条件判断(if/then/else)和循环控制(for/while)。
例如,if { $x > $y } { puts "x is greater" }表示如果x大于y,则输出“x is greater”。
5函数:•TCL允许用户自定义函数,使用proc关键字定义函数。
例如,proc add {a b} {return [expr $a + $b]}定义了一个名为“add”的函数,用于计算两个数的和。
6注释:•TCL使用双引号和注释符号(#)来添加注释。
例如,“puts “Hello World””和“# This is a comment”都是合法的TCL语法。
7输出:•TCL使用“puts”关键字来输出字符串到标准输出设备(通常是屏幕)。
例如,“puts "Hello World"”将输出“Hello World”。
TCL中文教程范文

TCL中文教程范文一、TCL简介TCL是一种解释性的脚本语言,由John Ousterhout于1988年开发。
它被设计用于与其他软件组件进行交互,并提供了强大的编程和脚本功能。
TCL提供了丰富的内置函数和命令,可以用于控制流、字符串处理、文件操作等。
二、TCL语法1.注释在TCL中,使用“#”符号来表示注释。
一行以“#”开头的内容将被视为注释,不会被执行。
2.变量TCL中的变量无需声明即可使用。
您可以使用“set”命令来定义变量,如下所示:```set variable value```例如,要定义一个名为“name”的变量,可以使用以下命令:```set name "John"```类似地,您可以使用“$”符号来使用变量的值,如下所示:```puts $name```3.控制流TCL提供了多种控制流语句,如条件语句(if)、循环语句(while、for)、分支语句(switch)等。
以下是几个示例:-条件语句:```if {$x > $y}puts "x is greater than y"} elseif {$x == $y}puts "x is equal to y"} elseputs "x is less than y"```-循环语句:```set i 0while {$i < 10}puts $iincr ifor {set i 0} {$i < 10} {incr i}puts $i```-分支语句:```switch $option"a"puts "Option a selected"}"b"puts "Option b selected"}defaultputs "Invalid option"}```4.字符串处理TCL提供了丰富的字符串处理功能,如连接字符串、截取字符串、查找子字符串等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCL语言及其文件的认识、理解和编辑欢迎大家指正和补充。
Tcl语法简介Tcl是用于工具命令语言的一个解释器。
它由作为基本命令解释器嵌入到工具(比如编辑器、调试器等)中的一个库包组成。
Tcl提供了(a)用于简单的文本命令语言的分析器,(b)一组内置的实用命令,和(c)一个C 接口,工具通过它用特定于工具的命令增加内置命令。
Tcl在与窗口组件库整合的时候特别有吸引力:它通过了提供变量、过程、表达式等机制增进了组件的可编程性;它允许用户编程组件的外观和动作二者;并且它在交互式程序之间提供一个简单但强力的通信机制作为一种脚本语言,Tcl具有简单的语法Tcl/Tk 的发明人John Ousterhout 教授在八十年代初,是伯克利大学的教授。
在其教学过程中,他发现在集成电路CAD 设计中,很多时间是花在编程建立测试环境上。
并且,环境一旦发生了变化,就要重新修改代码以适应。
这种费力而又低效的方法,迫使Ousterhout 教授力图寻找一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了Tcl (Tool Command Language) 语言的产生。
Tcl最初的构想的是希望把编程按照基于组件的方法(component approach),即与其为单个的应用程序编写成百上千行的程序代码,不如寻找一个种方法将程序分割成一个个小的, 具备一定“完整”功能的,可重复使用的组件。
这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可由这些小的组件功能基础上生成。
不同的组件有不同的功能,用于不同的目的。
并可为其它的应用程序所利用。
当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。
最后,需要用一种强的,灵活的“胶水”把这些组件“粘”合在一起, 使各个组件之间可互相“通信”,协同工作。
程序设计有如拼图游戏一样,这种设计思想与后来的Java 不谋而合。
终于在1988 年的春天, 这种强大灵活的胶水- Tcl语言被发明出来了。
按照Ousterhout 教授的定义,Tcl是一种可嵌入的命令脚本化语言(Command Script Language)。
“可嵌入”是指把很多应用有效,无缝地集成在一起。
“命令”是指每一条Tcl 语句都可以理解成命令加参数的形式:命令[参数1] [参数2] [参数3] [参数4] ...... [参数N]脚本化是指Tcl为特殊的,特定的任务所设计。
但从现在角度看,可以说Tcl是一种集C 语言灵活强大的功能与BASIC 语言易学高效的风格于一身的通用程序设计语言。
Tk (Tool Kit) 是基于Tcl的图形程序开发工具箱, 是Tcl的重要扩展部分。
Tk 隐含许多C/C++ 程序员需要了解的程序设计细节, 可快速地开发基于图形界面Windows 的程序。
据称, 用Tcl/Tk 开发一个简单的GUI 应用程序只需几个小时, 比用C/C++ 要提高效率十倍。
需要指明的是这里所说的“窗口”是指Tcl定义的窗口,与X-Windows 与MS Windows 的定义有所不同,但它可完美地运行在以上两个系统上。
Tcl代表了“tool command language - 工具命令语言”。
它由一个库包组成,程序可以把它用作自己的命令语言的基础。
Tcl的开发由两项观察所推动。
第一项观察是,通用可编程命令语言通过允许用户用命令语言写程序来扩展工具的内置设施,从而扩大了工具的能力。
在强力的命令语言之中最众所周知的例子是UNIX shell[5] 和Emacs 编辑器[8]。
在各自情况下,出现的有着不同寻常能力的计算环境,在很大程度上是因为能获得可编程的命令语言。
第二个促成它的观察是交互式应用正在增长。
在1970 年代晚期和1980 年代早期的分时环境中,几乎所有的程序都是面向批处理的。
典型的使用交互式的命令shell 来调用它们。
除了shell 之外,只有少数其他的程序是交互式的,比如编辑器和邮件器。
正好相反,今天使用的个人工作站,带有它们自己的光栅显示器和鼠标,鼓励了一种不同的系统结构,在这里大量的程序是交互式的,并且最常见的交互方式是直接用鼠标操纵单独的应用。
此外,今天能获得的大显示器使很多交互式的应用立即活跃起来成为可能,而对于在十年前很小的屏幕这是不实际的。
不幸的是,很少的今天的交互式程序拥有shell 或Emacs 命令语言的能力。
在这里好的命令语言是存在着的,它们趋向与特定的程序捆绑在一起。
每个新的交互式程序都要求开发一个新的命令语言。
在多数情况下,应用程序员没有时间或爱好去实现一个通用设施(特别是在应用自身很简单的时候),所以结果的命令语言趋向于带有不充分的功能和笨拙的语法。
Tcl是一个独立于应用的命令语言。
它作为一个C 库包存在,可以用于很多不同的程序中。
Tcl库提供了用于简单但完全可编程的命令语言的一个分析器。
这个库还实现了提供了通用的编程构造的一组内置命令,比如变量、列表、表达式、条件、循环和过程。
单个的应用程序可以用特定于应用的命令来扩展基本的Tcl语言。
Tcl库还提供一组实用工具例程来简化特定于工具的命令的实现。
我相信Tcl在窗口环境中是特别有用的,它提供了两项优势。
首先,它可以用做编制应用的界面的一个通用机制。
如果一个工具基于Tcl,则应当相对容易的去修改应用的用户界面,并使用新命令来扩展这个界面。
其次和更重要的是,Tcl为工具之间通信提供一种统一的框架。
如果在所有的工具中统一使用了它,Tcl将使工具在一起工作得比今天的状况更加优雅。
Tcl是不寻常的因为它提供两种不同的接口: 给用户发起Tcl命令的一个文本接口,和给它所嵌入的应用的一个过程接口。
这些接口的每个都必须是简单的、强力的和高效的。
在语言设计中有四个主要的因素:[1] 语言用于命令。
几乎所有Tcl“程序”都是短小的,很多只有一行长。
多数程序将是键入的,执行一次或者几次,接着就丢弃了。
这提示了这门语言应当有一个简单的语法,以便于键入命令。
多数现存的编程语言都有复杂的语法;在写长程序的时候有益,但如果用做命令语言就笨拙了。
[2] 语言必须是可编程的。
它应当包含通用编程构造,比如变量、过程、条件和循环,这样用户可以通过写Tcl过程来扩展内置的命令。
可扩展性也要求简单的语法:这使Tcl程序生成其他Tcl程序变得容易了。
[3] 语言必须允许一个简单而高效的解释器。
由于Tcl库要包含到许多小程序中,特别是在没有共享库的机器上,解释器必须不占用太多的内存。
用来解释Tcl命令的机制必须足够快,可用于每秒发生上百次的事件,比如鼠标移动。
[4] 语言必须允许对C 应用的一个简单接口。
它必须易于让C 应用调用这个解释器,并易于让它们用特定于应用的命令来扩展内置的命令。
这个因素是我决定不使用Lisp 作为命令语言的原因之一:Lisp 的基本数据类型和存储管理机制与C 实在是不同,很难在它们之间建立清晰而简单的接口。
对Tcl我使用了对于C 最自然的数据类型(字符串)。
Tcl的基本语法类似于UNIX shell:命令由用空格或TAB 分隔的一个或多个字段组成。
第一个字段是命令的名字,它可以是内置命令、特定于应用的命令、或者是由一系列的Tcl命令组成的过程。
在第一个后面的字段都作为参数传递给命令。
如同在UNIX shell 中那样,换行字符用做命令分隔符,分号也可用来分隔在同一行上的命令。
不同于UNIX shell,每个Tcl命令返回一个字符串结果,或者是空串,如果不适宜返回值的话。
在Tcl中有四个补充的语法构造,它们给予语言一种类似Lisp 的风格。
使用花括号来组合复杂的参数;它们充当可嵌套的引用字符。
如果参数的第一个字符是左花括号,则这个参数不以空白终结。
转而,它终结于相匹配的右花括号。
传递给这个命令的参数由在花括号中间的所有东西组成,并剥除围绕的花括号。
例如,命令set a {dog cat {horse cow mule} bear}将收到两个参数:“a”和“dog cat {horse cow mule} bear”。
这个特定命令将把变量 a 设置为等于第二个参数的一个字符串。
如果参数包围在花括号中,则不对这个参数做下面描述的其他替换。
花括号最常见的用途是把一个Tcl子程序指定为到Tcl命令的参数。
在Tcl中第二个语法构造是是方括号,它用于引发命令替换。
如果在参数中出现了左方括号,则从这个左方括号一直到相匹配的右方括号的所有东西都作为一个命令来对待,并由Tcl解释器递归的执行。
命令的结果接着替换到这个方括号包围的字符串所在的位置上。
例如,考虑命令set a [format {Santa Claus is %s years old} 99]format 命令做类似printf 的格式化并返回字符串“Santa Claus is 99 years old”,接着把它传递给set 并赋值到变量a。
第三个语法构造是美元号,它用于变量替换。
如果它出现在参数中,则随后的字符作为变量的名字对待;变量的内容被替换到参数中这个美元符号和名字所在的位置上。
例如,命令set b 99set a [format {Santa Claus is %s years old} $b]导致a 有同前面段落中的简单命令相同的最终值。
变量替换不是严格必须的,因为有其他方式来达到相同的效果,但是它减少了键入。
最后一个语法构造是反斜杠字符,可以用它把特殊字符插入到参数中,比如花括号或非打印字符。
在Tcl中只有一种数据类型:字符串。
所有命令、到命令的参数、命令返回的结果和变量的值都是ASCII 字符串。
Tcl始终使用字符串便于在Tcl库过程和包围它的应用的C 代码之间来回传递信息。
这使它易于在不同类型的机器之间来回传递有关Tcl的信息。
尽管在Tcl中所有的东西都是字符串,很多命令都希望它们的字符串参数有特定的格式。
这里的字符串有三种特定的通用格式:列表、表达式和命令。
列表只是包含用空白分隔的一个或多个字段的字符串,类似于命令。
可以使用花括来包围复杂的列表元素;这些复杂的列表元素自身经常也是列表,类似于Lisp。
例如,字符串dog cat {horse cow mule} bear是有四个元素的一个列表,其中第三个元素是有三个元素的列表。
Tcl提供一组列表操纵的命令,比如建立列表、提取元素、和计算列表长度。
字符串的第二种常见形式是数值表达式。
Tcl表达式同C 中的表达式有着同样的操作符合优先级。
Tcl命令 expr 把字符串作为表达式来求值并返回结果(当然是作为字符串)。
例如,命令expr {($a < $b) || ($c != 0)}在变量a 小于变量b 或者变量c 是零的时候返回“1”,否则返回“0”。