《嵌入式C编程:PIC单片机和C编程技术与应用》一1.7 语句和表达式

本节书摘来自华章出版社《嵌入式C编程:PIC单片机和C编程技术与应用》一书中的第1章,第1.7节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问“华章计算机”公众号查看

1.7 语句和表达式

在上面的例子中for那一行就是一个语句(statement)。程序在运行时会执行这些语句。该语句包含3个表达式。表达式将在第5章介绍,语句将在第6章介绍。在for语句中:

在这个例子中,for语句的后面有4行语句放在一对大括号{}内,随着i从1增长到10,被执行10次。当i变成11的时候,由于条件11<=10为假,条件不成立,循环终止。
表达式由常量、变量、运算符和函数调用组合而成。表达式通常都有一个结果(值)。像+ - * / 以及稍微有点特殊的=,则是一些简单的运算符。
在上面的例子中,由于在for循环中需要执行4条语句,我们将它们用{和}包围起来构成一个组,也称为复合语句。大括号中可以包含0条或多条语句。如果没有大括号,则只有output_high()会被执行10次,后面的3条语句将在整个循环语句结束之后运行
一次。
在这个for循环中的4行语句每一行都是一个函数调用。我们在程序中并没有定义这些函数,但编译器会将它们编译进去。函数名后的括号告诉编译器这是个函数调用。函数名后面括号内的表达式是要传入函数的数据。在函数调用的地方,它们称为实际参数(argument,也叫实参);而在函数定义中,称为形式参数(parameter,也叫形参)。
C语言中,每个有效语句都以分号;结尾。但是需要注意,这里说的是“有效”,而不是“有意义”。例如,下面是一个有效的C语言语句:

但是,该语句并没有完成任何工作。有些编译器可能会在这条语句上浪费点时间将其编译一下,但也仅此而已,并没有任何意义。好的编译器在这一行会弹出一个警告,因为这可能是程序员输入错了。
在分号前不写任何语句,我们称之为空语句。空语句什么都不做。
C语言不像其他一些语言有赋值语句,而是使用赋值运算符=来赋值:

x=3这个表达式包括变量、运算符和常量,再加上;,构成了一个完整的语句。赋值语句将右侧(rvalue)的值赋给左侧(lvalue)的变量。

时间: 2024-09-13 21:39:36

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.7 语句和表达式的相关文章

《嵌入式C编程:PIC单片机和C编程技术与应用》一第3章预编译指令3.1 标准预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第3章 Embedded C Programming: Techniques and Applications of C and PIC MCUS 预编译指令 编译器对C程序的处理可以明确地分为两步.第一步由预编译器完成.以#开头的预编译指令可能会影响编译器设置或者进行

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.8 时间

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.8节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.8 时间 在delay_ms中,ms表示毫秒(milliseconds).编程中常用的时间单位有: ns ?nanosecond(纳秒) ??0.000?000?001s μs ?microsecond(微秒) 0.000?001s ms millisecond(毫

《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.1节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 第1章 Embedded C Programming: Techniques and Applications of C and PIC MCUS C语言概述和程序结构 1.1 C源代码 下面是一段C语言源代码: 这段代码初看起来可能会觉得难以理解,但读完本书并完成书中

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.4 C预编译指令

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.4节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.4 C预编译指令 预编译是C语言中一个非常有意思的特性.预处理使用工具(预处理器)在编译前先扫描一遍代码,并对代码做出相应的修改从而生成用来编译的代码.预编译指令由#开始,占用一整行.在第3章中将会详细介绍它.在上面的例子中,#include指令将文件(e3.h)的

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.5 函数

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.5节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.5 函数 接下来,我们看到了一个函数定义"main".所有程序都需要有一个main()函数,也就是主函数.这是程序开始执行的地方.在本书中,当提到函数名时,我们都会在它的名字后面跟上(),表示这是个函数. 函数名前的void表示此函数的类型是vo

《嵌入式C编程:PIC单片机和C编程技术与应用》一3.6 测验

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第3章,第3.6节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 3.6 测验 1. 将下列代码放入一个函数,将会发生什么事情? (a)程序将会延时5s (b)变量x被赋值为5 (c)第2行出现语法错误 (d)第3行出现语法错误 (e)什么都不会发生 2. 在练习X3-6.c中,整个文件只使用了一个分号,显示了预编译器的强大功能.下列

《嵌入式C编程:PIC单片机和C编程技术与应用》一2.2 C常量语法

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第2章,第2.2节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 2.2 C常量语法 2.2.1 二进制 需要多位(bit)二进制数才能表示一个大于1的值,具体需要多少位,则取决于数字大小.一个8位的二进制数(一个字节)可以表示256个数字(0-255). 16位的二进制数可以表示从0到65?535的值.如果使用一个字节来传输信息,一

《嵌入式C编程:PIC单片机和C编程技术与应用》一1.6 声明

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第1章,第1.2节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 1.6 声明 "int i"声明了一个以标识符i作为变量名的数据类型.int表示该变量是一个整数.本例中,i只能在main()函数中使用.如果声明i的这一行放到函数之前(在函数外),那么i也可以在其他函数中使用.变量的使用范围称作变量作用域.作用域将

《嵌入式C编程:PIC单片机和C编程技术与应用》一2.8 测验

本节书摘来自华章出版社<嵌入式C编程:PIC单片机和C编程技术与应用>一书中的第2章,第2.8节,作者 [美]马克·西格斯蒙德(Mark Siegesmund),更多章节内容可以访问"华章计算机"公众号查看 2.8 测验 存储下面的二进制数需要多少字节? 1001011001 (a)10 (b)1 (c)1.2 (d)2 (e)二进制数无法用字节存储 下列哪个选项可以用来表示一个十六进制数? (a)两个十进制数 (b)字节 (c)半字节 (d)一个八进制数 (e)三个二进制