聊聊这些东西C、C++、boost、Qt在嵌入式系统开发中的使用

C语言

C语言大家都比较熟悉了,是属于底层编程语言了,计算机行业里有句话说“C生万物”!不得不说,C语言的出现,改变了计算机世界。

在嵌入式系统开发中,C语言可以用于各个部分的开发,uboot、内核、驱动、应用。所以只要会c语言,就可以做嵌入式系统开发,不过对于应用层的开发,还是C++好一些。

在这里也对C语言列举几个例子,展示下C语言的强大:

  • Unix操作系统、Linux操作系统都是C语言开发的。
  • 大家比较熟悉的Java,Java现在使用是最广泛的编程语言,Java真正的跨平台编程语言,一次编译,到处跑,其跨平台的原因是JVM的存在,对就是Java虚拟机,Java虚拟机是C开发的!
  • 伴随着人工智能AI、机器学习等火起来的Python,脚本语言,也是跨平台的编程语言,现在使用也是很广泛,有很丰富的各种库,其解释器也是C语言开发的!
  • Lua脚本语言,是一个速度非常快的脚本语言,其解释器也是c语言开发的。
  • Shell脚本语言,其解释器也是C语言开发的,Linux下的命令,都是C语言编写的。

C语言作为底层开发语言,当之无愧。

C++

在嵌入式系统开发中,大部分是使用C语言,在嵌入式Linux系统中,随着处理器的处理能力的增强,现在做业务应用开发时C++用的越来越多了。C++是面向对象的开发语言,具有高级语言的特点,使用起来语法也比C语言要好用些,虽然性能上可能会比C语言稍微低一些,但是开发效率比C语言要高的多。用过C++之后,可能就不在想用C语言了~
在使用C语言的时候,有没有让你头疼的东西?我比较头疼的是字符串处理、链表、队列、不可变长的数组……然而,在C++中这都不是问题!
C++里有字符串类string、容器类包括map、vector、list、queue等, 只需要实例化一下就可以用了!C++11中还加入了线程、std::bind, 函数对象std::function(可以替代c中的函数指针),lambda表达式等,使用起来确实很方便。

boost

boost是C++的一个扩展组件库,以下内容引自百度百科:
Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。
Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。
Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。Boost库有个特点,85%的组件可以直接包含头文件就可以引用,这个对于嵌入式系统的使用是非常方便的!
嵌入式大家都知道,如果使用库是需要交叉编译的,如果只是引用头文件就可以使用,就不需要单独交叉编译库文件了,很少方便。
其实对于boost库我也是只用过很小一部分。

Qt

Qt 是一套跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。
Qt里封装了好多C++的类库,各种功能都有,比如常用的字符串处理类QString,可变长数组(字节数组)QByteArray,联合类型QVariant,以及类似于标准库的容器模板类QMap、QVector、QList等等,
当然Qt还有一个比较出色的地方,就是信号槽框架,这个信号槽用于类之间的通信。Qt里也封装了线程,而且其线程用起来很好用,非常容易实现异步处理,线程间通信也是用信号槽,并且线程间的信号槽是
有队列的,防止资源访问冲突。
使用Qt开发效率是很高的,包括界面与非界面的应用,使用Qt做嵌入式的应用开发会越来越多。

使用过boost与Qt组件库与封装,可能就不再想使用标准C++的啦!

欢迎关注微信公众号

在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页