ISO/IEC 9899:2011 条款6.8.3——表达式与空语句
6.8.3 表达式与空语句
语法
1、expression-statement:
expressionopt ;
语义
2、在一条表达式语句中的表达式被计算为一个void表达式作为其副作用。[注:诸如赋值语句以及函数调用,它们所具有的副作用。]
3、一条空语句(仅由一个分号组成)不执行任何操作。
4、例1 如果一个函数调用被计算为仅作用于它的副作用的一条表达式语句,那么可以通过将该表达式转换为一条void表达式,显式地将其值丢弃掉,通过如下投射操作:
int p(int);
/* ... */
(void)p();
5、例2 在以下程序片段中
char *s;
/* ... */
while (*s++ != '\0')
;
一条空语句被用于给迭代语句提供一个空循环体。
6、例3 一条空语句也可以用来携带一个标签,仅在一条复合语句的封闭的 } 之前。
while (loop1) {
/* ... */
while (loop2) {
/* ... */
if( want_out)
goto end_loop1;
/* ... */
}
/* ... */
end_loop1: ;
}
进一步可参考迭代语句(6.8.5)。
ISO/IEC 9899:2011 条款6.8.3——表达式与空语句的更多相关文章
- ISO/IEC 9899:2011 条款6.6——常量表达式
6.6 常量表达式 语法 1.constant-expression conditional-expression 描述 2.一个常量表达式可以在翻译期间被计算,而不是在运行时,并且根据情况可以被用于 ...
- ISO/IEC 9899:2011 条款3——术语、定义与符号
3. 术语.定义与符号 1.对于此国际标准的意图,应用了以下定义.其它术语是在用斜体类型或一个语法规则左侧出现的地方定义.在本国际标准中所显式定义的术语不被假定为对其它地方所定义的类似术语的隐式引用. ...
- ISO/IEC 9899:2011 条款5——5.2.1 字符集
5.2.1 字符集 1.两个字符集和它们相关联的依次顺序应该被定义:写在源文件中的集合(源字符集),以及在执行环境中被解释的集合(执行字符集).每个集合此外被划分为一个基本字符集,其内容由本子条款给出 ...
- ISO/IEC 9899:2011 条款6.4.2——标识符
6.4.2 标识符 6.4.2.1 通用 语法 1.identifier: identifier-nodigit identifier identifier-nondigit identifie ...
- ISO/IEC 9899:2011 条款6.4.3——通用字符名
6.4.3 通用字符名 语法 1.通用字符名: universal_character-name: \u hex-quad(四位十六进制数) \U hex-quad hex-quad hex-quad ...
- ISO/IEC 9899:2011 条款5——5.1.2 执行环境
5.1.2 执行环境 1.定义了两个执行环境:独立式(freestanding)以及宿主的(hosted).在这两种情况下,当一个派定的C函数被执行环境调用时,程序就启动.所有具有静态存储周期的对象应 ...
- ISO/IEC 9899:2011 条款4——标准顺从
4. 标准顺从 1.在本国际标准中,“应该”被解释为对一个实现或一个程序的要求:相反地,“不该”被解释为禁用. 2.如果违反了出现在一个强制规定或运行时强制规定之外的“应该”或“不该”要求,那么该行为 ...
- ISO/IEC 9899:2011 条款6——语言
6 语言 6.1 标记法 1.在本条款中所使用的语法标记法.语义类别(非终结符)用斜体字指示,而字面量单词以及字符集成员(终结符)用粗体字指示.跟在一个非终结符后面的冒号(:)引出其定义.在单独的行中 ...
- ISO/IEC 9899:2011 条款6.3——转换
6.3 转换 1.有些操作符将操作数的值自动地从一种类型转换为另一种.本子条款指定了从这么一个隐式转换所要求的结果,以及从一个投射操作(一个显式转换)所要求的结果.在6.3.1.8中所列出的信息概括了 ...
随机推荐
- Java8 Stream 流使用场景和常用操作
JAVA8内置的函数式编程接口应用场景和方式 pojo类对象和默认创建list的方法 import lombok.AllArgsConstructor; import lombok.Data; imp ...
- springboot搭建环境之使用@Slf4j注解方式,进行日志管理
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 可以用注解@Slf4j 需要引入依赖为: < ...
- destoon模板语法规则笔记
1.包含模板 {template 'header'} 或 {template 'header', 'member'} {template 'header'} 被解析为 : <?php inclu ...
- Storm 安装时 部分supervisor启动成功,并不在web ui上显示
今天帮公司搭建集群时,发现启动了三个Supervisor 发现只有一个显示在Web UI 上. 于是我就简单地检查了下另外两台没有启动的 storm supervisor的日志, 发现没有报出什么异常 ...
- neo4j索引
1.创建索引 CREATE INDEX ON : Disease (name) 2.查询所有创建的索引 :schema 或者 call db.indexes 3.删除索引 drop index on ...
- Dominating Patterns (AC 自动鸡模版题, 出现次数最多的子串)
传送门 题意: 给你n个模式串, 再给你一个 文本串,问模式串在文本串中出现次数最多是多少. 出现次数最多的模式串有哪些. 解: 模版题. #include <bits/stdc++.h> ...
- Sublime Text 3 C++ 配置
Sublime Text 3 C++ 配置 先将MinGW\bin添加至环境变量中,然后打开Sublime Text,菜单Tools->Build System->New Build Sy ...
- POJ2421Constructing Roads
Constructing Roads Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 23343 Accepted: 10 ...
- ArcGIS Pro 性能诊断
是否遇到过 ArcGIS Pro 显示地图很慢很卡的情况呢? 我们可以通过以下步骤来诊断和调整. 调用方法:点击当前展示缓慢的面板(可以是地图视图也可以是三维场景视图),按下键盘 Shift+E.这时 ...
- 记一次清理缓存的小事情(chrome) chrome下清理缓存不生效的问题
记一次清理缓存的小事情(chrome) chrome下清理缓存不生效的问题 前端开发中会经常涉及清理缓存的事情. 在一次开发后, 需要清理缓存,一个哥们怎么清理都不生效, 于是向我求救. 在我看了下后 ...