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

四举措加强网站建设做流程图网站

四举措加强网站建设,做流程图网站,新闻做的差的网站,学习网站后台维护文章目录前言assertstatic_assert前言 断言(Assertion)是一种常用的编程手段#xff0c;用于排除程序中不应该出现的逻辑错误。它是一种很好的Debug工具。其作用是判断表达式是否为真。C提供了assert和static_assert来进行断言。在C库中也有断言#xff0c;其中断言与C的相同… 文章目录前言assertstatic_assert前言 断言(Assertion)是一种常用的编程手段用于排除程序中不应该出现的逻辑错误。它是一种很好的Debug工具。其作用是判断表达式是否为真。C提供了assert和static_assert来进行断言。在C库中也有断言其中断言与C的相同静态断言是_Static_assert。 assert assert是一个仿函数宏用于程序在运行时进行断言。它在标头assert.h中定义 #ifdef NDEBUG #define assert(condition) ((void)0) #else #define assert(condition) #endif若编译为release版本编译器一般会定义NDEBUG则assert失效。若是在debug下assert 中的表达式若为假则 assert 在标准错误输出上输出实现指定的诊断信息并调用 std::abort 。 因为 assert 是仿函数宏在 condition 中未被括号保护的逗号都被转译成宏参数的分隔符。而assert只接受一个参数所以需要注意 assert(std::is_same_vint, int); // 错误 assert 不接收二个参数 assert((std::is_same_vint, int)); // 正确一个参数 static_assert(std::is_same_vint, int); // 正确非宏 std::complexdouble c; assert(c std::complexdouble{0, 0}); // 错误 assert((c std::complexdouble{0, 0})); // 正确 下面我们以一个字符串换成类作为示例代码在设置内容和打印内容的时候进行断言保证m_str分配了内存 #include assert.h #include string.h #include iostream using namespace std;class StrBuf{ private:char* m_str nullptr; public:void alloc_memory(int size){if(m_str nullptr)m_str new char[size];}void setbuf(const char* str){assert(m_str ! nullptr);strcpy(m_str,str);}void print(){assert(m_str ! nullptr);for(int i0;m_str[i]!\0;i)coutm_str[i];} };int main(){StrBuf sbuf;sbuf.alloc_memory(10);sbuf.setbuf(hello);sbuf.print(); }输出正常输出文本内容 hello如果我们将alloc_memory函数(分配内存)注释掉 int main(){StrBuf sbuf;//sbuf.alloc_memory(10);sbuf.setbuf(hello);sbuf.print(); }输出的内容如下运行时输出了断言结果并结束了程序 Assertion failed: m_str ! nullptr, file D:\SingleSources\CPP\8.cpp, line 15static_assert C11新增了静态断言static_assert它是内置的因此使用静态断言不需要包含头文件。与assert在运行时检查不同static_assert在编译阶段时检查源代码。 static_assert ( boolean expression, message ) //since C11 static_assert ( boolean expression ) //since C17示例静态断言一个为FALSE的表达式 constexpr bool getFalseExpr(){return false; }int main(){static_assert(getFalseExpr(),false expression); }编译时报错并输出了信息false expression 8.cpp: In function int main(): 8.cpp:6:31: error: static assertion failed: false expression6 | static_assert(getFalseExpr(),false expression);| ~~~~~~~~~~~~^~
http://www.hkea.cn/news/14587865/

相关文章:

  • 网站设计论文3000字建设银行江西分行官方网站
  • 网站推广营销的步骤关于网站开发的引言
  • 我想做个网站找谁做网店怎么开起来
  • 如何把网站放到百度兰州搜索引擎优化
  • 做逆战网站的名字交通行业门户网站建设的必要性
  • 不用花生壳做网站服务器电子邮箱注册
  • 网站后台管理系统网站免费建站叉手
  • 网站如何做数据储存的落实网站建设管理
  • 江苏省宝应城市建设有限公司网站中小型网站建设讯息
  • 河南网站建设公网站搭建 里短信
  • 可口可乐网站建设的目的做网站的模版
  • 二手物品交易网站开发环境定制图片软件
  • 做暧暧视频网站下载做外贸是不是必须有网站
  • 电商网站产品设计优化技术主要是建设协会官方网站
  • 网站如何生成静态做哪些网站比较赚钱方法有哪些
  • 建网站需要怎样做注册域名需要费用吗
  • 网站后台管理系统框架wordpress内容新窗口打开
  • 网站建设 课程 说明网站备案授权码
  • 自己创建网站403网站编辑楼盘详情页怎么做
  • 淮安营销型网站建设安徽省建设干部学校网站关停
  • 长春建立一个网站需要多少钱?住房与城乡建设部建设环境工程技术中心网站
  • 常州网站定制app网站开发合同
  • 免费建站地方汽车网站模板购买
  • 丹徒网站建设平台wordpress淘宝联盟插件
  • 网站目的及功能定位女孩子学广告设计好找工作吗
  • 网站制作怎么学怎么防止网站被注册机
  • 网站建设课程设计格式1 建设网站目的是什么意思
  • 企业网站有哪些举例ido手表官网
  • 银川网站建设那家好建设网站经营范围
  • 自己做网站可以随便起名字吗安徽电子工程学校