`
hqs7636
  • 浏览: 221002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

语 句 2.014

阅读更多
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;


。。。
分享到:
评论

相关推荐

    HttpWatchPro-v6.014(网页数据分析工具)

    HttpWatch是一款强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出

    缅甸语输入法.doc

    1. **缅甸语输入法**:keyman_free_6-2-176-0.exe,这是一个名为Keyman的免费版输入法软件,专门用于支持缅甸语的输入。 2. **缅甸语字库**:Myanmar3.ttf,这是用来显示缅甸文字的字体文件,必须安装到系统字体库中...

    EhLib 9.3 Build 9.3.014 Cracked

    Delphi 著名控件包 Ehlib,支持 RAD Studio 10.3 RIO。

    FTDIUN2K.INI

    FTDIUN2K.INI 驱动

    Oracle.DataAccess.dll 2.112.3.0

    Oracle.DataAccess.dll 2.112.3.0

    飞语FeiYu.(简易好用的局域网聊天工具)

    飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具) 飞语FeiYu.(简易好用的局域网聊天工具)

    libaio-0.3.105-2.x86_64.rpm

    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序列号

    TouchWin编辑工具V2.C.6序列号

    libiconv-2.dll

    opencv libiconv-2.dll

    senseiv2.x

    标题 "senseiv2.x" 指的可能是金蝶KIS系列软件的一个特定版本或组件,而描述中提到的问题是在Windows家庭版上使用该软件时遇到的驱动程序兼容性问题。金蝶KIS是一款企业级的财务管理软件,主要用于中小型企业,它...

    nssock2.dll

    2013.3月最新nssock2.dll版本 对于xshell等软件打开错误,无法连接动态库有很好的解决 下载后,将该文件放到安装目录下 或者放到c盘的windows/System32目录下

    hex2c.exe程序

    将HEX文件转换成TXT文本的程序.运行命令行中输入cmd命令,然后进入文件的目录,然后在输入转换命令.

    bin2c.exe(Bin2c.exe是一个可将bmp格式图片转换为C代码数组的工具.RAR)

    BMP(Bitmap)是一种无损的位图图像格式,广泛应用于Windows和OS/2操作系统中。它以未经压缩的原始像素数据存储图像,支持多种颜色深度,如8位、24位等。在使用Bin2c.exe时,输入的BMP文件应为24位真彩色格式,因为...

    信息安全风险评估报告.pdf

    2 业务系统分析 ................................................................................................................................. 6 2.1 业务系统职能 ......................................

    libmpc.so.2

    arm 开发库文件 嵌入式开发 libmpc.so.2

    最新 STM32 ST-LINK utility V4.2.0 带固件 V2.J29.S7

    内部版本 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 4.0+V2013.2.5_附安装_破解_个人测试程序

    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 ASE ado.net2.0 驱动包AdoNet2.AseClient" 涉及的是Sybase Adaptive Server Enterprise(ASE)数据库与.NET Framework 2.0之间的连接技术。Sybase ASE是一款高性能的关系型数据库管理系统,广泛应用于...

    调试器ST-LINK/V2 upgrade.exe(固件升级到V2.J40.S7)

    本工具为v3.10.3版,经本人实测,可将现有调试器STLINK固件升级到V2.J40.S7版,在IAR正常下载和调试。

    高质量C/C++编程指南.pdf

    第2 章程序的版式................................................................................................................8 2.1 空行 ................................................................

Global site tag (gtag.js) - Google Analytics