首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计if- the语句几个有关语法的问题

设计if- the语句几个有关语法的问题
EN

Stack Overflow用户
提问于 2012-09-05 04:44:43
回答 3查看 106关注 0票数 0

我正在使用gcc 4.7.0,在c89模式下。

我有这个如果-其他声明,并有两个问题。

  1. 我只是想知道,我是否应该首先测试假的或真实的条件。正常情况下什么更好。我知道这没什么区别,但我只是想知道其他工程师是做什么的?在下面的示例中,我首先检查是否为FALSE。
  2. 我总是喜欢做一些防御性的编程。所以,如果我能明确地检查每一个条件,我总是这样做的。例如,不要做if() - else。如果()-否则如果(),我会这么做。在下面的示例中,条件可以是TRUE,也可以是FALSE。然而,我总是喜欢检查其他条件,以确保它是真实的。这有什么真正的意义吗?

非常感谢您的建议。

代码语言:javascript
运行
复制
if(event->status == FALSE) {
    g_release_call_test(module, channel_id);
}
else if(event->status == TRUE) {
    if(UNIT_TEST & KARAOKE) {
        if(g_record_karaoke(module, channel_id) == FALSE) {
            g_release_call_test(module, channel_id);
        }
    }
    else if(UNIT_TEST & RECORD) {
        if(g_record_file_test(module, channel_id) == FALSE) {
            g_release_call_test(module, channel_id);
        }
    }
    else if(UNIT_TEST & GET_DIGITS) {
        if(g_collect_digits_test(module, channel_id) == FALSE) {
            g_release_call_test(module, channel_id);
        }
    }
}
EN

Stack Overflow用户

发布于 2012-09-05 05:00:32

1)我只是想知道我是否应该先测试假的或真实的条件。正常情况下什么更好。我知道这没什么区别,但我只是想知道其他工程师是做什么的?在下面的示例中,我首先检查是否为FALSE。

从语法上讲,这并没有多大的区别,明智的编程在一般情况下并不重要。然而,对于特定的用途而言,它会影响性能。让我们考虑一个例子,如果您正在播放一个媒体文件,并且这个条件是检查它是一个媒体帧还是一个头。在这里,您知道您将有100多个媒体帧在一个标题之后,因此您需要检查媒体帧,然后是标题。由于检查头将意味着100个冗余检查,== 100冗余CPU指令可能更多。根据您的使用情况编写代码总是更好,除非您正在编写一个通用的东西。

2)我总是喜欢做一些防御性的编程。所以,如果我能明确地检查每一个条件,我总是这样做的。例如,不要做if() - else。如果()-否则如果(),我会这么做。在下面的示例中,条件可以是TRUE,也可以是FALSE。然而,我总是喜欢检查其他条件,以确保它是真实的。这有什么意义吗?

防御性编程有自己的利弊。在上述场景中,编译器将为您进行必要的优化。

你可能想看看这里,http://www.eventhelix.com/realtimemantra/basics/optimizingcandcppcode.htm#

干杯..。快乐学习

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12274601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档