当前位置: 首页 > wzjs >正文

好的网站建设商家山东最新消息今天

好的网站建设商家,山东最新消息今天,怎么做娱乐网站,成都市 建设领域信用系统网站博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

博主介绍:程序喵大人

  • 35- 资深C/C++/Rust/Android/iOS客户端开发
  • 10年大厂工作经验
  • 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
  • 《C++20高级编程》《C++23高级编程》等多本书籍著译者
  • 更多原创精品文章,首发gzh,见文末
  • 👇👇记得订阅专栏,以防走丢👇👇
    😉C++基础系列专栏
    😃C语言基础系列专栏
    🤣C++大佬养成攻略专栏
    🤓C++训练营
    👉🏻个人网站

C/C++里,assert是一种比较常用的调试策略。

定义

assert字面意思是断言,用于判断是否满足某个条件,如果不满足某个条件,则程序会直接崩溃,控制台上会显示崩溃所在的文件名和行号。

看下它的使用:

#include <assert.h>
#include <stdio.h>void func(int a) {assert(a > 0);printf("%d", a);
}int main() { func(-1); }

示例中我用assert来表示函数func的输入一定要>0

我如果输入了-1,程序运行时会在assertcrash,同时提供了报错的详细:

a.out: test.cc:5: void func(int): Assertion `a > 0' failed.Aborted

注意事项:

我们一定在assert处只做判断,不要添加任何功能逻辑,因为assert只在debug模式下有作用release模式下,assert这行代码会自动跳过去,会自动被忽略。

assert(++i > 0);

这种改变了i状态的assert代码千万不要写,因为会导致debug模式和release模式下的行为不一致。

什么时候使用assert

期望某块逻辑一定要满足某个前置条件,如果不满足就要crash,这方便于我们在debug模式下调试程序,如果crash,方便我们进一步修复问题,使其满足assert条件。

比如我们要输出某个字符串,做一次判空其实也是耗费性能的,我们期望传进来的串一定非空,如果是空,那就直接crash

void func(const char* s) {printf("hello %s \n", s);
}

static_assert

上面的assert运行时断言,C++11之后还有个编译时断言:static_assert,用于在编译时判断某些条件,如果断言失败,则会编译失败,用法和assert类似。

#include <type_traits>
constexpr int k = 120;
int main() { static_assert(k > 200, "k < 200"); }

输出:

test.cc:8:14: error: static_assert failed due to requirement 'k > 200' "k < 200"int main() { static_assert(k > 200, "k < 200"); }
^             ~~~~~~~1 error generated

static_assert后面可以跟着一个字符串,在断言失败时,会在控制台输出此字符串,方便提示我们相关信息。

练习

  • static_assert还有很多作用,比如可以判断某个类是否有默认构造函数,某个函数是否是noexcept等,可以自己尝试一下。
http://www.dtcms.com/wzjs/215723.html

相关文章:

  • 大型网站建设就找兴田德润广告推广平台代理
  • 外国优秀设计网站网站seo服务商
  • 邯郸网站制作地方网站推广多少钱
  • 做房地产开网邯郸网站建设优化
  • 山东网站seo推广优化价格欧美网站建设公司
  • 物流网站制作目的网络营销品牌案例
  • 宁波英文网站建设分发平台
  • 网站建设 cms 下载武汉seo优化公司
  • 人事外包收费标准企业网站优化外包
  • 做网站的公司高创东莞seo建站投放
  • 天门做网站360点睛实效平台推广
  • 哪个网站能帮助做路书网络推广网站
  • 沈阳企业网站全网营销代运营
  • 网站建设推进情况做广告的怎么找客户
  • 网站建设需要注意哪些事项技术培训
  • html网站设计源码百度收录怎么做
  • 重庆南川网站制作公司哪家专业网站seo如何做好优化
  • 做视频网站的备案要求吗微商软文大全
  • 网站建设哪家企业好南京今天重大新闻事件
  • php做购物网站详情页的代码免费b2b网站推广
  • 手机网站底部电话如何开发一个软件平台
  • 网站开发及运营代理协议范本seo分析seo诊断
  • 普通电脑怎么做网站服务器seo人员的职责
  • 口碑好网站建设公司哪家好关键词挖掘站长工具
  • 青岛网站互联网公司谷歌关键词搜索排名
  • 如何维护自己公司的网站电商培训有用吗
  • 建设营销网站要什么免费刷seo
  • 爱做网站外国免费友情链接平台
  • 上海专业的网站建设360推广和百度推广哪个好
  • 网站名称备案上海百网优seo优化公司