C 和 C++ 程序员会发现 D 中的语句很熟悉,另外还有一些有趣的扩充。
语句:
;
非空语句
作用域语句块
无作用域非空语句:
非空语句
块语句
无作用域语句:
;
非空语句
块语句
非空或无作用域语句块:
非空语句
作用域语句块
非空语句:
标号语句
表达式语句
声明语句
If语句
条件语句
While语句
Do语句
For语句
Foreach语句
Switch语句
Case语句
Default语句
Continue语句
Break语句
Return语句
Goto语句
With语句
Synchronized语句
Try语句
ScopeGuard语句
Throw语句
Volatile语句 (2.014中没有)
Asm语句
Pragma语句
Mixin语句
ForeachRangeStatement (2.014)
1 作用域(scope)语句
作用域语句:
非空语句
块语句
对于 非空语句 或 块语句 会引入新的 用于
局部符号 的作用域。
即使会引入一个新的作用域,局部符号 的声明也不能掩盖(隐藏)在同一函数里的 其它的局
部符号声明。
void func1(int x)
{ int x; // 非法,x 掩盖了参数 x
int y;
{ int y; } // 非法,y 掩盖了封闭域里的 y
void delegate() dg;
dg = { int y; }; // 正确,这个 y 不在同一个函数里
struct S
{
int y; // 正确,这个 y 是个成员,不是个局部变量
}
{ int z; }
{ int z; } // 正确,这个 y 没有掩盖其它的 z
{ int t; }
{ t++; } // 非法,t 未定义
}
此思想用于避免在复杂函数里,由于限定域里的声明无意识情况,隐藏了前面的声明而引起的错漏。在一个函数里的那些 局部变量名 应该全部唯一。
2 作用域块语句
作用域块语句:
块语句
作用域块语句会为 块语句 引入新的作用域。
3 标号语句
语句可以有标号。标号是一种标志符,其后跟随一条语句。
标号语句:
标识符 ':'无Scope语句
包括空语句在内的任何语句都可以有标号,因此都可以作为 goto 语句的目标。标号语句也
可以用作 break 或者 continue 语句的目标。
标号位于独立的名字空间中,不与声明、变量、类型等位于同一名字空间。就算如此,标号
也不能同局部声明 重名。标号的名字空间是它们所在的函数体。标号的名字空间 不嵌套,也
就是说,一个语句块中的标号 可以在语句块外访问。
4 块语句
块语句:
{ }
{ 语句列表 }
语句列表:
语句
语句 语句列表
语句块是由{ }包括起来的语句序列。其中的语句按照 词法顺序执行。
5 表达式语句
表达式 ;
表达式会被计算。
没有作用的表达式,如 (x + x),在表达式语句中是非法的。如果需要这个表达式,那么
将它的类型转换为 void 就可以让它合法。
int x;
x++; // 正确
x; // 非法
1+1; // 非法
cast(void)(x + x); // 正确
6 声明语句
声明语句声明并初始化变量。
声明语句:
单个声明
一些声明语句:
int a; // 把 a 声明成类型 int,并把它初始化为 0
struct S { } // 声明结构 S
alias int myint;
。。。
分享到:
相关推荐
HttpWatch是一款强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出
1. **缅甸语输入法**:keyman_free_6-2-176-0.exe,这是一个名为Keyman的免费版输入法软件,专门用于支持缅甸语的输入。 2. **缅甸语字库**:Myanmar3.ttf,这是用来显示缅甸文字的字体文件,必须安装到系统字体库中...
Delphi 著名控件包 Ehlib,支持 RAD Studio 10.3 RIO。
FTDIUN2K.INI 驱动
Oracle.DataAccess.dll 2.112.3.0
飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具)
libaio-0.3.105-2.x86_64.rpm libaio-devel-0.3.105-2.i386.rpm libaio-devel-0.3.105-2.x86_64.rpm libaio-devel-0.3.106-5.x86_64.rpm pdksh-5.2.14-36.el5.x86_64.rpm unixODBC-2.2.11-7.1.x86_64.rpm unixODBC-...
TouchWin编辑工具V2.C.6序列号
opencv libiconv-2.dll
标题 "senseiv2.x" 指的可能是金蝶KIS系列软件的一个特定版本或组件,而描述中提到的问题是在Windows家庭版上使用该软件时遇到的驱动程序兼容性问题。金蝶KIS是一款企业级的财务管理软件,主要用于中小型企业,它...
2013.3月最新nssock2.dll版本 对于xshell等软件打开错误,无法连接动态库有很好的解决 下载后,将该文件放到安装目录下 或者放到c盘的windows/System32目录下
将HEX文件转换成TXT文本的程序.运行命令行中输入cmd命令,然后进入文件的目录,然后在输入转换命令.
BMP(Bitmap)是一种无损的位图图像格式,广泛应用于Windows和OS/2操作系统中。它以未经压缩的原始像素数据存储图像,支持多种颜色深度,如8位、24位等。在使用Bin2c.exe时,输入的BMP文件应为24位真彩色格式,因为...
2 业务系统分析 ................................................................................................................................. 6 2.1 业务系统职能 ......................................
arm 开发库文件 嵌入式开发 libmpc.so.2
内部版本 STM32 ST-LINK utility V4.2.0.0,STLinkUSBDriver.dll v5.0.3.0, ST-LINK_CLI.exe v3.2.0.0,Firmware Version v2.J29.S7。亲测OK
FastReport.Net+V2013.2.5+For+.Net4.0_附安装与破解_个人测试程序 1.首先安装FastReport.Net+V2013.2.5 For Net 4.0 的原始安装文件[FRNetDemo2010.msi] 2.将FastReport.Net+V2013.2.5+For+.Net4.0文件夹中的...
标题 "Sybase ASE ado.net2.0 驱动包AdoNet2.AseClient" 涉及的是Sybase Adaptive Server Enterprise(ASE)数据库与.NET Framework 2.0之间的连接技术。Sybase ASE是一款高性能的关系型数据库管理系统,广泛应用于...
本工具为v3.10.3版,经本人实测,可将现有调试器STLINK固件升级到V2.J40.S7版,在IAR正常下载和调试。
第2 章程序的版式................................................................................................................8 2.1 空行 ................................................................