聊聊C、C++、Boost、Qt与嵌入式开发

2021-05-31 15:50:17 浏览数 (1)

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 的啦!

0 人点赞