西安鼎城力和科技技术有限公司
http//:www.dingchenglihe.com
电话:15991734690
EAIL
:Mike
@dingchenglihe.com
说 明
本资料由西安鼎城力和科技技术有限公司的工作人员整理并调试完成,资料一部分来源于本公司的
工程师工作的经验,另一部分来自于其它书籍和网上参考资料。
本资料是为还在门外但有兴趣从事于电子产品研发或单片机开发的学生或在职人员设计的,目的是
在于共享设计经验和联络更多的人从事这方面工作。
为了资料的简捷和便于阅读,本资料中的一部分,您可以参阅本公司的网站
(www.dingchenglihe.com),那里将有更详细的电路说明和程序说明。
- 2 - 2
西安鼎城力和科技技术有限公司
http//:www.dingchenglihe.com
电话:15991734690
EAIL
:Mike
@dingchenglihe.com
第 1 章 C 语言
本章主要描述 C 语言一些基本要素。当你开始编写 C 程序时,你可能对 C 语言的一些基本问题感到
困惑,如 C 语言所使用的约定、关键字和术语等。本章将回答这方面你经常会遇到的一些问题。
例如,switch 语句是最常用的一种 C 语言构件,本章将回答与它有关的三个常见问题。本章还涉及
其它几个问题,如循环、分支、运算符的优先级和程序块技术。在阅读本章时,请注意有关 switch 语
句和运算符优先级的一些问题,这些问题常常会使 C 语言的初学者感到迷惑。
1.1
什么是局部程序块(local block)?
局部程序块是指一对大括号({})之间的一段 C 语言程序。一个 C 函数包含一对大括号,这对大括号
之间的所有内容都包含在一个局部程序块中。if 语句和 swich 语句也可以包含一对大括号,每对大括号
之间的代码也属于一个局部程序块。此外,你完全可以创建你自己的局部程序块,而不使用 C 函数或
基本的 C 语句。你可以在局部程序块中说明一些变量,这种变量被称为局部变量,它们只能在局部程
序块的开始部分说明,并且只在说明它的局部程序块中有效。如果局部变量与局部程序块以外的变量重
名,则前者优先于后者。下面是一个使用局部程序块的例子:
#include <stdio.h>
void main(void);
void main()
{
/ * Begin local block for function main() * /
int test_ var = 10;
printf("Test variable before the if statement: %d\n", test_var);
if (test_var>5)
{
/ * Begin local block for "if" statement * /
int test_ var = 5;
printf("Test variable within the if statement: %d\n",
test_var);
- 3 - 3
西安鼎城力和科技技术有限公司
http//:www.dingchenglihe.com
电话:15991734690
EAIL
:Mike
@dingchenglihe.com
{
/ * Begin independent local block (not tied to
any function or keyword) * /
int test_var = 0;
printf (
"Test variable within the independent local block: %d\n",
test_var)
}
/ * End independent local block * /
printf ("Test variable after the if statement: %d\n", test_var);
}
/*End local block for function main () * /
上例产生如下输出结果:
Test variable before the if statement: 10
Test variable within the if statement: 5
Test variable within the independent local block:0
Test variable after the if statement: 10
注意,在这个例子中,每次 test_var 被定义时,它都要优先于前面所定义的 test_var 变量。此外还要
注意,当 if 语句的局部程序块结束时,程序重新进入最初定义的 test_var 变量的作用范围,此时 test_var
的值为 10。
请参见:
1.2 可以把变量保存在局部程序块中吗?
- 4 - 4
西安鼎城力和科技技术有限公司
http//:www.dingchenglihe.com
电话:15991734690
EAIL
:Mike
@dingchenglihe.com
1.2 可以把变量保存在局部程序块中吗?
用局部程序块来保存变量是不常见的,你应该尽量避免这样做,但也有极少数的例外。例如,为了
调试程序,你可能要说明一个全局变量的局部实例,以便在相应的函数体内部进行测试。为了使程序的
某一部分变得更易读,你也可能要使用局部程序块,例如,在接近变量被使用的地方说明一个变量有时
就会使程序变得更易读。然而,编写得较好的程序通常不采用这种方式来说明变量,你应该尽量避免使
用局部程序块来保存变量。
请参见:
1.1 什么是局部程序块?
1.3 什么时候用一条 switch 语句比用多条 if 语句更好?
如果你有两个以上基于同一个数字(numeric)型变量的条件表达式,那么最好使用一条 switch 语句。
例如,与其使用下述代码:
if (x ==l)
printf ("x is equal to one. \n");
else if (x ==2)
printf ("x is equal to two. \n");
else if (x = =3)
printf ("x is equal to three. \n");
else
printf ("x is not equal to one, two, or three. \n");
不如使用下述代码,它更易于阅读和维护:
switch (x)
{
case 1: printf ("x is equal to one. \n");
break;
case 2: printf ("x is equal to two. \n");
- 5 - 5