首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

漫谈C变量——夏虫不可

C语言中,按照生命周期来分,变量只有两类:静态变量和动态变量。 其中,静态变量是指,在编译时刻(Compiling-time)变量的地址和大小都已经确定下来的变量。...> 静态变量   嵌入式系统中,确定的(Deterministic)通常是“简单可靠”的代名词,因此追求可靠性的嵌入式项目中尽可能使用静态变量是有道理的。...理论上说,局部变量只程序进入变量所在的花括号范围内时才从栈(stack)中进行分配,一旦程序出了花括号,它的声明就结束了——夏虫不可冰说的就是局部变量那可怜的一生…… 看着新近分配的局部变量,静态局部变量深深的吸了一口烟...刻舟求剑 C. 刻舟求剑 D....(C++、Java、C#原生态支持),而是开发人员通过程序逻辑所构造出的特殊变量类型。

2K20

还在用gtest?更好用的测试框架介绍

现代C++ unit-test库 除了gtest之外,还有很多轻量级易用的单元测试库,比如doctest和catch。...相比gtest需要编译/安装,他们都是header only的,直接包含到工程里就可以做单元测试了,portable又没有任何依赖,而且对编译器版本要求也不高,只需要C++11就行了,用了之后只有一个字...一切都在doctest命名空间中(实现细节一个嵌套的detail命名空间中)。 所有宏都有前缀——默认情况下有些不带前缀,但这是可选的——请参阅配置。...可以程序中设置选项,而不是通过argc/ argv从命令行传入。 自己被禁用时不会产生警告。...引用 C++单元测试工具——doctest_蓝月心的博客-CSDN博客_c++ 单元测试 purecpp - a cool open source modern c++ community C++-doctest

1.3K10

C++雾中风景番外篇2:Gtest 与 Gmock,聊聊C++的单元测试

编写单元测试可以帮助我们开发阶段就发现错误,并且保证新的修改没有破坏已有的程序逻辑。 C++之中,常用的测试框架有 Gtest,Boost test,CPPUint 等。...正是由于 Gmock 的加持,让 Gtest 多种测试框架之中脱颖而出。...今天笔者在这里要和大家聊聊的就是目前我司主力使用的Gtest,以及配套的 Gmock,通过两者的配合使用,相信能够搞定绝大多数的测试场景了。... Gtest 之中提供了两类断言ASSERT_*系列和EXPECT_*系列。两者的区别就在于,ASSERT 失败之后就不会运行后续的测试了,但是 EXPECT 虽然失败,但是不影响后续测试的进行。...4.小结 通过Gtest 与 Gmock 的使用,能够覆盖绝大多数进行 C++ 单元测试的场景,同时也减少了我们编写单元测试的工作。笔者希望通过本篇文章来抛砖引玉,希望大家多写单测。

4.3K51

玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

我们原来使用的是自己实现的一套单元测试框架,使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。...一方面是自己记记笔记,好记性不如烂笔头,以后自己想查查一些用法也可以直接在这里查到,一方面是对于不想去看一大堆英文文档的朋友,我这里可以快速的找到gtest相关的内容。...下面是该系列的目录: 1.玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest 2.玩转Google开源C++单元测试框架Google Test系列(gtest...)之二 - 断言 3.玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制 4.玩转Google开源C++单元测试框架Google Test系列(gtest)...之四 - 参数化 5.玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试 6.玩转Google开源C++单元测试框架Google Test系列(gtest)

1.1K10

出海应用本地化时遇见单复数字串怎么办?

以阿拉伯举例,它的名词单复数格式变化有6种之多,俄罗斯、乌克兰、波兰等有4种,拉脱维亚、立陶宛等有3种。更别说,各语言下的细则还有差异。...比如,俄罗斯和波兰支持的名词单复数格式都是4种,但是各格式所对应的规则还不一样。俄语里,1,21,31,41,51,61…这样数字后面跟的名词才能使用单数格式。...同时新建两条字串b、c,这两个变量%1s、%2s分别调用字串b、字串c。 字串b:%1$d 张交通卡,需要进行单复数拆分; 字串c:%1$d 张,需要进行单复数拆分。...这个是因为当支持的语种众多,且包含阿,为了字串管理方便,可以统一把单复数字串(此处为英文)中拆分为6条。...华为多语言服务也为三方应用提供了多语言下的单复数检查功能(此为检查项“全球化架构评估”中的子检查项)。 · END ·

3.7K20

c++单元测试

如果针对上面这个场景引入单元测试,情况会是这样: 开发过程中,每写一个函数就添加一个简单的测试来判断函数功能和所期望的是否一致。未对刚写的函数做出确认之前,开发者并不会接着写新代码。...也就是每写一个函数,必然是验证其功能可用的情况下才引入新的功能的开发。...Gtest介绍 Google C++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux, Mac OS X, Windows, Cygwin和Symbian),它提供了丰富的断言、致命和非致命失败判断...引用 C++单元测试工具——doctest_蓝月心的博客-CSDN博客_c++ doctest 单元测试_菜鸟郭郭的博客-CSDN博客 还在用gtest?...更好用的测试框架介绍_特立独行的猫a的博客-CSDN博客 【gTestgtest简介及简单使用_伐尘的博客-CSDN博客_gtest GTest 总结_HUSTER593的博客-CSDN博客_gtest

1.4K10

简单C++单元测试框架(支持一键切到GTest或Boost.Test)

这个单元测试框架本是用于之前规划的C++协程框架使用的。 虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。...而且他们的兼容性也不是很好 GTestARM架构下需要额外作一些适配 Boost.Test的话,按Boost的尿性,一旦引入就会涉及上千个文件 目前这个单元测试框架还没有抽离出来,所以代码暂时放在 https...另外有一点需要注意的是,Check宏的实现过程中只能有一次出现表达式求值的地方,不然表达式就会执行多次,这样会导致行为异常的 因为表达式只能出现一次,所以暂时没有做临时的数据存储,就不会像GTest那样写出...一键切换适配方案 – GTest 其实要切换到GTest很简单,因为本来就是按GTest的接口方式来的,直接重新define就好了 原来的代码是 #define test_case_func_name(...(c) EXPECT_TRUE(c) #define CASE_EXPECT_FALSE(c) EXPECT_FALSE(c) #define CASE_EXPECT_EQ(l, r) EXPECT_EQ

47330

简单C++单元测试框架(支持一键切到GTest或Boost.Test)

这个单元测试框架本是用于之前规划的C++协程框架使用的。 虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。...而且他们的兼容性也不是很好 GTestARM架构下需要额外作一些适配 Boost.Test的话,按Boost的尿性,一旦引入就会涉及上千个文件 目前这个单元测试框架还没有抽离出来,所以代码暂时放在...另外有一点需要注意的是,Check宏的实现过程中只能有一次出现表达式求值的地方,不然表达式就会执行多次,这样会导致行为异常的 因为表达式只能出现一次,所以暂时没有做临时的数据存储,就不会像GTest...一键切换适配方案 – GTest 其实要切换到GTest很简单,因为本来就是按GTest的接口方式来的,直接重新define就好了 原来的代码是 #define test_case_func_name(...(c) EXPECT_TRUE(c) #define CASE_EXPECT_FALSE(c) EXPECT_FALSE(c) #define CASE_EXPECT_EQ(l, r) EXPECT_EQ

1.1K10

AI创新赛道啃下最硬的骨头:中科凡抢滩NLP蓝海

2019年9月,中科凡就已获得中关村高新技术企业认证,12月获得国家级高新技术企业认证;2020年10月,中关村国际前沿科技创新大赛上,中科凡从数百家高新企业中脱颖而出,入围人工智能领域TOP10...而中科凡客观上所组建的人才体系“中台”结构,就成为其NLP领域积蓄粮草的重要表现方式,不同特性的人才相互协同推动中科凡实现高效的垂直场景拓展。...这尤其表现在To B、To G的众多商业合作项目之外,中科凡所投入建立的To C项目上——“飞译”。...飞译平台已推出了具有实用性和针对性的四个版本,即高校版、医疗版、通用版和个人版,实现了对不同人群、不同领域、不同需求的全方位覆盖,这背后既需要To B领域的积淀,也需要团队以平台化的方式将原本束之高阁的技术、方法不断向C端用户开放...显然,飞译平台将帮助中科凡C端市场拓展业务规模,不断拉升企业发展的天花板。 二是不断拥抱NLP的技术未来,为一切变化和趋势做最充分的准备。

26820

AI 看唇嘈杂场景的语音识别准确率高达75%

事实上,研究表明视觉线索语言学习中起着关键的作用。相比之下,人工智能语言识别系统主要是建立音频上。而且需要大量数据来训练,通常需要数万小时的记录。...Meta AI 研究科学家 Abdelrahman Mohamed 表示:“未来,像 AV-HuBERT 这样的 AI 框架可用于提高语音识别技术嘈杂的日常条件下的性能,例如,聚会上或在熙熙攘攘的街头中进行的互动...AV-HuBERT Meta 并不是第一个将人工智能应用于读唇问题的公司。...通过监督学习,像 DeepMind 这样的算法标记的示例数据上进行训练,直到它们可以检测到示例和特定输出之间的潜在关系。例如,系统可能会被训练显示柯基的图片时写出单词「dog」。...但是,尽管较少的数据上进行了训练,AV-HuBERT 的单词错误率 (WER)(衡量语音识别性能的指标)可以看到但听不到说话者的情况下略好于旧模型的 33.6%,前者为 32.5%。

69630

AI 看唇嘈杂场景的语音识别准确率高达75%

事实上,研究表明视觉线索语言学习中起着关键的作用。相比之下,人工智能语言识别系统主要是建立音频上。而且需要大量数据来训练,通常需要数万小时的记录。...Meta AI 研究科学家 Abdelrahman Mohamed 表示:“未来,像 AV-HuBERT 这样的 AI 框架可用于提高语音识别技术嘈杂的日常条件下的性能,例如,聚会上或在熙熙攘攘的街头中进行的互动...AV-HuBERT Meta 并不是第一个将人工智能应用于读唇问题的公司。...通过监督学习,像 DeepMind 这样的算法标记的示例数据上进行训练,直到它们可以检测到示例和特定输出之间的潜在关系。例如,系统可能会被训练显示柯基的图片时写出单词「dog」。...但是,尽管较少的数据上进行了训练,AV-HuBERT 的单词错误率 (WER)(衡量语音识别性能的指标)可以看到但听不到说话者的情况下略好于旧模型的 33.6%,前者为 32.5%。

84110

如何用googletest写单元测试

googletest是一个用来写C++单元测试的框架,它是跨平台的,可应用在windows、Linux、Mac等OS平台上。下面,我来说明如何使用最新的1.6版本gtest写自己的单元测试。...先进入gtest目录(解压gtest.zip包过程就不说了),执行以下两行命令: g++ -I./include -I./ -c ....测试的时候,很自然,我只希望构造一个哈希表对象,对之做许多种不同组合的操作,以验证三个方法是否正常。...gtest里,一切测试用例都是Test类的实例!所以,Run方法将会执行所有的Test实例来运行所有的单元测试,看看类图: ? 为什么说一切单元测试用例都是Test类的实例呢?...TEST_F宏里,会再次定义一个新类,继承自我们上面定义的子类(两重继承哈)。

6.5K41
领券