当前位置:首页 > 技术 >

c语言到底怎么用(c语言顺口溜)

来源:原点资讯(www.yd166.com)时间:2022-11-22 16:50:41作者:YD166手机阅读>>

列表6 使用Switch语句

以上示例的寓意是,让条件语句的选择更开放,以选择出最适合的语句。这种做法使程序结构更简单,便于理解程序流程,缩短处理器的额外时钟周期。

技巧 4:避免使用汇编语言

微处理器的自然语言为汇编语言指令。为低级别机器语言编程可能会为处理器提供更高效的代码。然而,人类并不是天生就会这种语言,并且经验表明,编写汇编语言会造成误解。误解会导致维护不当,更甚者,可能会使系统到处是bug。

一般建议避免使用汇编语言。实际上,现在大多数编译器都能编译出非常高效的代码。采用C语言或C 语言等高级语言的开发,能获得更有序的结构,便于理解和维护,使代码的整体效果更好。列表7给出了一个示例,比较了使一个32位变量递增所使用的汇编代码和C语言代码。

c语言到底怎么用,c语言顺口溜(9)

列表7 用汇编和C语言完成一个变量的递增

汇编C代码当然,现在仍有一些场合适于使用汇编语言,但这种场合仍比较少。首个推荐的场合是开发引导装载程序。这种情况下,可能需要优化对启动过程中某个决策(启动应用或引导加载器)的速度。此时,分支判定用汇编代码就可能有意义了。另一种场合是开发一种在DSP上运行有严格时序要求的控制循环。

为了从设备中的得到每个时钟周期,用汇编语言做控制循环的编码是有意义的。如果目前任务适合用汇编,应确保将其妥善存档便于有据可查,这样,未来的开发者(或未来的版本)会明白该代码的用途。

技巧 5:充分利用模块化

笔者最常见的经历是着手由硬件工程师开启的一个新项目往往是杂乱无章的代码组织。通常我们会发现,代码由一个单一的主模块组成,其中有2.5万多行代码。在这些应用中,一切都是全局性的,函数寥寥无几,goto语句贯穿整个代码结构。15年前这算正常,但如今已不再适用了!

C语言编程使工程师能够将代码分成独立的功能模块,这简化了代码导航,同时还能够使工程师使用封装等面向对象技术。代码可以被组织成逻辑模块,这很有意义。虽然可能要先花点时间(几分钟),但从长远来看,这将能省掉很多漫长之夜,和很多调试之苦!

技巧 6:写千层饼式代码而非面条式代码

Beningo是一个意大利名字,和许多意大利人一样,我对意大利面食也是毫无保留地热爱。当拿意大利面食与软件相比时,我就会想到两种面食,即意大利面条和千层饼。意大利面条比较混乱,面条相互交织,纵横交错,结果完全没有任何类型的结构。编写非结构化代码就非常像意大利面条:咬一口,完全不知道吃的是哪部分。另一种就是意大利千层饼!这种面食是分层的,是有结构的。分层开发的代码不仅更容易理解,还可以移走一层并添加一个新层,基本上能够实现重复使用和维护的简易性。图1为用千层饼式代码模型的一个简单软件模块示例。

c语言到底怎么用,c语言顺口溜(10)

图1 千层饼软件模型

驱动程序配置

应用程序配置

应用程序

驱动程序库

硬件

技巧 7:使用描述式变量名称

编写易于理解和维护的较大软件有许多障碍,其中之一就是变量的命名习惯。为了尽力缩短变量名,开发者通常会自创一些较短的、令人费解的助记符,往往只有他们自己才能明白的符号。现代语言使一个变量名可以包含数百个字符。为了让事情清晰明确,“直截了当”地方法要好于其它方式。因此,变量名一目了然不仅有利于开发人员,也有利于未来的维护团队。列表8给出一个示例。

c语言到底怎么用,c语言顺口溜(11)

列表8 变量的命名

技巧 8:少用#pragma语句

C语言中有一种特殊的#pragma语句。这些语句通常处理非标准的句法和特性,应尽可能避免使用这种语句,因为它们是非标准的,不能从一个处理器移植到另一个处理器。有些编译器可能要求用这类语句完成某项任务,例如定义一个中断服务程序。在这种情况下,可能除了使用#pragma语句以外别无它法。

如果可能,将所有的#pragma语句放在一个模块或几个模块里。这有助于确保在代码移植时,只需要更新几处代码,而非整个代码库;此外,这也将有助于防止移植代码的首次编译所带来的困扰。

技巧 9:错误往往并不是看上去那样简单

技巧 9:错误往往并不是看上去那样简单

在调试一个C程序时,有一个让人当心的陷阱就是编译器错误。由于编译器的复杂性,当检测到一个错误时,通常错误位于程序中的其它地方,而非编译器所指示的位置。这主要与编译器生成程序的步骤有关。错误类型通常是一致的,工程师可以发现的一些错误中,90%都是根源:

•当心漏掉#include文件。这可能会使程序开发人员看到完美的代码行,但由于未包含必要的头文件,编译器便会将其标志为一个错误,表示有些东西未定义。

•当心漏掉分号。编写C代码时最常见的错误是忘记在句末加分号。

•当心漏掉括号。漏写括号是代码编写过程中又一常犯的错误,或是粗心漏掉,或是由于键入错误而产生一个错误字符。

•当心漏掉逗号。在复杂的定义中很容易忘记逗号!一般情况下,当弹出一个奇怪的编译错误对话框时,要查看该行前已被编译的内容。很有可能就是错误所在!它可能是出现在一行上面,或中间部分,或在完全不同的文件里。不要放弃!只要具备一定的经验,解决这些疑难问题就会成为一种第二天性。

技巧 10:优秀程序员写的代码行数不一定少

人们常有这种误解,即认为较一般的程序员而言,一个优秀的程序员往往写较少的代码行就能解决问题。不要卷入这一错误的想法!一个优秀的程序员通常具备思维缜密、结构清晰的编码基础。变量命名和封装都恰如其分,系统中几乎不用全局变量。函数应保持简短有效。如果代码看起来很混乱,需要多写几行才能使其看上去更清晰,那就不妨多写几行!可以上网查看获得C代码编写最混乱殊荣奖项的代码用作前车之鉴。优秀程序员写的代码简洁、易于理解和维护,代码行数并非最少(图2)!

c语言到底怎么用,c语言顺口溜(12)

栏目热文

c语言原理(c语言的基本框架)

c语言原理(c语言的基本框架)

感谢您的阅读与点赞!欢迎关注:「大猫玩程序」,查看C语言系列文章C语言之父C语言背景20世纪70年代早期,贝尔实验室的D...

2022-11-22 17:16:00查看全文 >>

c的语言特征(c语言八个特点)

c的语言特征(c语言八个特点)

0x01 感言这本经典的K&R C被称为C程序员的第一本书,也是海带C语言推荐系列书籍的第一本书,这本书适合入门级的菜鸟...

2022-11-22 16:48:52查看全文 >>

c语言错误c2143如何解决(c语言error321)

c语言错误c2143如何解决(c语言error321)

不知道从什么时候开始,「小甜水」、「适合女生喝的酒」、「微醺晚安酒」,这类说法越来越多。据北京商报,仅 2021 年上半...

2022-11-22 17:04:29查看全文 >>

c语言和编程区别(c语言与编程有什么关系)

c语言和编程区别(c语言与编程有什么关系)

我们从零开始说:C是由Dennis Ritchie在1970年代初期在美国AT&T贝尔实验室工作时开发的一种中级编程语言...

2022-11-22 16:54:50查看全文 >>

什么是主c副c(有哪些副c可充当主c)

什么是主c副c(有哪些副c可充当主c)

在原神中,很多角色都能担任副C一职,但你知道哪些副C最好用吗?本期小刘就来为大家盘点一下,原神中最值得培养的8个副C,你...

2022-11-22 16:49:58查看全文 >>

c语言之间的区别(c语言和c 语言有区别吗)

c语言之间的区别(c语言和c 语言有区别吗)

作为嵌入式开发者,只知道写代码还是不行的,不了解C语言的版本差异,可能就会在项目的过程中踩坑,明明是存在的东西就是会出错...

2022-11-22 17:13:11查看全文 >>

c语言是不是c程序(c语言是一切的核心吗)

c语言是不是c程序(c语言是一切的核心吗)

前言c 语言是一种底层语言,是一种系统底层级的语言,例如Windows、Linux、Unix等操作系统就是使用c语言编写...

2022-11-22 16:45:20查看全文 >>

c是c语言吗(c语言中c+什么意思)

c是c语言吗(c语言中c+什么意思)

C 资源框架速查表C 标准库,包括了STL容器,算法和函数C Standard Library:是一系列类和函数...

2022-11-22 16:53:36查看全文 >>

晒干生蚝最简单的做法(干生蚝正宗做法)

晒干生蚝最简单的做法(干生蚝正宗做法)

很多妈妈都会买些蚝干给家里人熬汤、熬粥喝,本身优质的蚝干是营养十分丰富的一道食材,不管从小孩到老人都可以食用的。但是又怕...

2022-11-22 17:04:19查看全文 >>

生蚝干最正宗的做法(干生蚝干怎么做好吃)

生蚝干最正宗的做法(干生蚝干怎么做好吃)

泡发:最简便直接用温热水泡3小时左右,清洗备用生蚝粥米下锅煮一会,半熟加入泡发好的生蚝,快熟再加一些瘦肉,潮汕粥喜欢粒粒...

2022-11-22 17:10:51查看全文 >>

文档排行