编译环境:
Ubuntu 12.04: gcc
Windows XP : VS-2005

深入一下if (CONDITION)语句中CONDITION的情况。即CONDITION何时为真,何时是假。

測试代码主体例如以下:

int main(int argc, char *argv[])
{
if (CONDITION)
printf("true.\r\n");
else
printf("false.\r\n"); return 0;
}

情境1:

CONDITION: 

(1) /* true  */

(0) /* false */

(-1) /* true  */

结论:0为假,非零即真。

情境2:

signed int value1 = 11;

signed int value2 = 328;

CONDITION: 

(value1 - value2) /* true - 同[情境1]的第3种情况 */

((value1 - value2) > 2000) /* false */



情境3:

unsigned int value1 = 11;

unsigned int value2 = 328;

CONDITION: 

(value1 - value2) /* true  - 同[情境1]的第3种情况 */

((value1 - value2) > 2000) /* true  */

这里涉及数据类型的“隐式转换”,(value1 - value2)的结果被隐式地转换成unsigned int类型,转换方式是(value1 - value2)的补码

((value2 - value1) > 2000) /* false */



情境4:

int value1 = 11;

unsigned int value2 = 328;

结果同情境3。

数据类型的“隐式转换”。假设当中一个操作数是unsigned int, 则还有一个操作数也被视为unsigned int

(value1 - value2) /* true  */

((value1 - value2) > 2000) /* true  */

[C]if (CONDITION)语句中CONDITION的情况的更多相关文章

  1. 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)

    Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...

  2. mybatis sql语句中 in() 长度为0或null的情况

    mybatis sql语句中 in() 长度为0或null的情况 比如: select * from A where colName IN <foreach collection="m ...

  3. MYSQL语句中的explain

    1.使用mysql explain的原因 在我们程序员的日常写代码中,有时候会发现我们写的sql语句运行的特别慢,导致响应时间特别长,这种情况在高并发的情况下,我们的网站会直接崩溃,为什么双十一的淘宝 ...

  4. TP 查询语句中如何使用 FIND_IN_SET 这样的查询方法

    TP 查询语句中如何使用 FIND_IN_SET 这样的查询方法 $condition['_string'] = 'FIND_IN_SET('.$citys.',city)';

  5. 在mysql语句中为什么要加反引号

    在MySQL语句中我们有时候经常会遇到反引号(``),刚开始的时候不知道什么意思,他是什么作用呢? Select * from `member` order by posts desc limit 0 ...

  6. AQS的子类在各个同步工具类中的使用情况

    AQS AQS(AbstractQueuedSynchronizer)是 java.util.concurrent的基础.J.U.C中宣传的封装良好的同步工具类Semaphore.CountDownL ...

  7. 腾讯一面问我SQL语句中where条件为什么写上1=1

    目录 where后面加"1=1″还是不加 不用where 1=1 在多条件查询的困惑 使用where 1=1 的好处 使用where 1=1 的坏处 where后面加"1=1″还是 ...

  8. 在 SQL Server 数据库的 WHERE 语句中使用子查询

    这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...

  9. sql语句中日期时间格式化查询

          今天在做会员管理系统搜索时,我发现以前的搜索时间方式不太科学,效率也不是太高.由其是在查询指定的时间相等的时候,我在数据库中都存这样的时间格式"2007-5-22 14:32:1 ...

随机推荐

  1. MyBatis 之一 简介

    什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...

  2. Hibernate框架之HQL查询与Criteria 查询的区别

    Hibernate框架提供了HQL查询和Criteria 查询.下面对这两种查询分别做个例子.也好对这两种查询方法有个大概的了解.就用房屋信息表做例子,查询所有房屋信息. HQL语句查询所有房屋信息: ...

  3. 扩增子分析QIIME2-3数据导出Exporting data

    # 激活工作环境 source activate qiime2-2017.8 # 建立工作目录 mkdir -p qiime2-exporting-tutorial cd qiime2-exporti ...

  4. 梦想CAD控件关于id与handle问题

    ID和句柄具有各自的特点: (1) ID:在一个任务中,本次任务中都是独一无二的.在不同的任务中,同一个图形对象的ID可能不同. (2) 句柄:在一个任务中,不能保证每个对象的句柄都唯一,但是在一个图 ...

  5. (独孤九剑)---PHP操作MySQL数据库

    [一]开启mysql扩展 在PHP操作MySQL数据库之前,要保证开启了MySQL数据库扩展 若未开启,则可以将php.int文件下的php_mysql开启即可,方式为去掉前面的封号; 配置完成后要重 ...

  6. 02Oracle Database 安装,卸载,系统服务,系统组件及系统表空间

    Oracle Database 安装,卸载,系统服务,系统组件及系统表空间 Oracle Database 安装 Oracle Database 卸载 Oracle Database 系统服务 Ora ...

  7. Oracle 把一个用户所有表的读权限授予另一个用户

    create user <USER_NAME> identified by <PASSWORD>; grant create session TO <USER_NAME& ...

  8. Python函数式编程简介

    参考原文 廖雪峰Python函数式编程 函数 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程 ...

  9. 子集和问题 - 回溯&搜索

    题目地址:http://www.51cpc.com/web/problem.php?id=4264 其实一看到这道题我就想到了01背包,但是卡死在了如何顺序输出: 个人人为回溯本身就会用到搜索,像是充 ...

  10. Error:Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope

    原因:html标签和struts标签混用,或者表单元素外面没有<html:form>标签包裹. 解决:统一标签 <html:form action="/login.do&q ...