Linux系统下计算机C语言的编程技巧分析

2015-01-20 05:22邢如意
电脑知识与技术 2014年36期
关键词:C语言计算机

邢如意

摘要:C语言作为多程序编辑的基础语言,在国际上已得到的广泛的应用,近年来在科技的快速发展下,对计算机C语言技术的要求也在不断提高。而Linux系统作为操作系统中的重要力量,在现行Linux系统下进行计算机C语言编程,是一项比较复杂、困难的事情。因此,如何加强在Linux系统下的计算机C语言编程技巧,也是目前编程行业面临的严峻问题之一。该文就以计算机C语言为例,探讨在高科技的发展下,其在Linux系统中应用的编程技巧,以供参考。

关键词:Linux系统;计算机;C语言;编程技巧

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)36-8674-02

Linux是指一套免费使用和自由传播的类Unix操作系统,其是一个基于UNIX及POSIX的多用户、多任务、支持多线程与多CPU的操作系统。Linux操作系统作为一套免费使用和自由传播的类Unix操作系统,已经成为目前世界上使用人数最多的类Unix操作系统,并且使用人数还在呈持续增长趋势。而C语言作为IT工作中最为常用的一种编程语言,目前市面上很多软件都是在C语言的平台上产生的。基于Linux系统与C语言应用的广泛性与普遍于,于Linux系统下进行计算机C语言编程,也是必然趋势下的产物。但在Linux系统下熟练、灵活应用计算机C语言编程,却不是一件容易的事,因此,了解Linux系统下计算机C语言的编程技巧,便也是每位编程人员必须掌握的专业知识。

1 C语言的定义及优缺点

1.1 C语言的定义

C语言作为一种结构化语言,主要起到人类与计算机“交流”的作用,C语言可看作是最接近人类思维的语言,也最经典的数据结构语言、最基础的软件设计语言。C语言层次清晰,既具有高级语言的特点,同时又具有汇编语言的特点。C语言可以作为系统设计的语言,用来编写工作系统应用程序,也可作为应用程序设计语言,用来编写不依赖计算机硬件的应用程序。因此,也使得C语言的应用范围广泛,其不仅应用于软件开发方面,各类科研项目也均需要C语言,例如单片机及嵌入式系统等硬件方面便可以用C语言来开发[1]。

1.2 C语言的优点

C语言的优点诸多,最主要的优点体现在如下几方面:

1) 灵活方便。C语言共有32个关键词和9种控制语句,程序书写形式自由,主要应用小写字母来表示,具有简洁紧凑、灵活方便的应用优点。

2) 数据结构丰富。C语言的数据类型主要包括有字符型、实型、整型、结构体类型、指针类型、数组类型、共用体类型等几类。通过对以上数据类型的灵活应用,可以实现各种复杂的数据结构运算。

3) 运算符丰富。C语言共有34例运算符,运算符包含范围极为广泛,C语言可将赋值、括号、强制类型转换等都作为运算符进行处理,从而使C语言的运算类型丰富,表达式类型多样化。

4) 语法限制不严格。虽然C语言属于强类型语言,但它的语法限制不太严格,语法比较灵活,使程序编写人员拥有较大的自由度。

5) 目标代码生成质量高。C语言生成的目标代码质量高,程序执行效率高,通常情况下,其只比汇编程序生成的目标代码效率低10~20%左右,由于C语言目标代码生成质量高,也使得它在编程中得到了广泛的应用。

6) 直接操作性强。C语言允许直接访问物理地址,可以对硬件进行直接操作,由此可见,C语言既具有高级语言的功能,也具备低级语言的诸多功能,可以像汇编语言一样,对位、字节与地址进行操作。

7) 可移植性好。C语言可适用于多个操作系统,例如UNIX、DOS系统,均可进行计算机C语言编程,C语言还适用于多种机型,给编程人员提供了极大的方便。此外,C语还具有强大的绘图功能及数据处理能力,可移植性好,适用于编写系统软件、二维、三维图形及动画。

8) 属于结构式语言。C语言属于结构式语言,该语言的显著特点是数据以及代码的分隔化,即是指程序的各部分除了一些必要的信息交流外,可处于彼此独立的状态。

1.3 C语言的缺点

在实际的编程应用中,C语言的缺点主要体现在两个方面:其一,C语言的主要缺点表现在数据的封装性上,这一点导致C语言在数据的安全性方面存在较大的缺陷,这也是C与C++的一大区别;其二,C语言的第二大缺点体现在程序的安全性上,由于C语言的语法限制不太严格,对变量的类型约束不严格,由此影响了程度的安全性,对数组下标越界不作检查等。由于以上两方面缺点,导致C语言在实际应用中比其他高级语言较难掌握,因此编程时也应该提高对C语言缺点的重点,并采取科学、合理的措施有效规避缺点导致的不良影响。

2 Linux系统下计算机C语言的编程技巧分析

文章就以Linux系统为例,综合C语言的优缺点,分析总结Linux系统下计算机C语言的编程技巧,以供参考。

2.1 源程序的编译

在Linux系统下进行C语言源程序编译时,必须要使用到GNU的gcc编译器,因此,编程人员首先要学会灵活使用gcc编译器编译源程序。虽然gcc编译器有很多种选项,但一般来说,编程人员只了解其中最主要的几个选项,便可编译自己所写的简单的源程序,gcc编译器的主要选顶表现在三下方面:其一,要求gcc编译器进行编译时,需要将程序以后在进行相关调试信息提供时,采用-g选项来表示;其二,要求输可以进行执行文件名时,采用-o选项来表示;其三,要求gcc编译器需要将相应的目标代码输出时,采用-c选项来表示。

假设,有一个非常简单的源程序:

(hello.c):

int main(int argc,char **argv)

{printf("Hello Linux\n" )}endprint

对上述源程序进行编译时,编程人员只需在命令下执行:gcc -o hello hello.c,

gcc编译器便会为我们生成一个可执行文件hello,执行/hello便可看到程序的输出结果。上面的命令行中,gcc代表编程人员选择gcc编译器进行编译源程序,-o选项代表编程人员要求编译器输出的可执行文件名为hello,而hello.c,便是所需要的源程序文件。

如果编程人员Linux系统下进行计算机C语言编程时,还需要在应用gcc编译器中的更多选项,可以通过查看gcc编译器的帮助文档来获得其它选项的详细说明[2]。

2.2 程序库的链接

以下面程序为例:/* temp.c */

#include

int main(int argc,char **argv)

{ double value;

printf("Value:%f\n",value); }

尝试编译上面程序可发现,该程序十分简单,但是,若编程人员采用gcc -o temp temp.c编译时,会出现如下提示的错误信息:

/tmp/cc33Kydu.o: In function `main':

/tmp/cc33Kydu.o(.text+0xe): undefined reference to `log'

collect2: ld returned 1 exit status

导致错误信息出现的原因,主要是因为编译器未能找到log的具体实现,虽然编程人员偏译时使用了正确的头文件,但是在编译的时候还是要连接确定的库,才能避免上述错误的发生。例如上述程序,为了使用数学函数,必须和数学库连接,因此,编程人员可加入-lm选项.gcc-o temp temp.c-lm,只有这样,才能进行正确的编译。以此类推,在Linux系统下进行计算机C语言编程时,编程人员应该根据具体情况,合理链接相应的数据库,才可保证编程的正确性。

2.3 加强程序调试

编程人员编写C语言程序并不是一次性就会成功的,在实际操作中,会出现很多意想不到的错误,为避免这种错误,便要学会对程序的调试。Linux系统下计算机C语言的编程最常应用的调试软件为gdb,根据界面的不同,程序调试方法也会有所不同[3]。例如,如需在图形界面下调试程序,便选择xxgdb,且要记得在编译的时候加入-g选项。关于gdb如何使用,如下作简单叙述:

程序gdb在运行之后,便会在计算机屏幕上看到这样的内容:

GOB is free software and you are welcome to distribute copies of it under certain conditions;type”show copying”to see the conditions There is absolutely no warranty for GDB;type”show warranty”for Details.

GDB 4.13(i481-alak-linux),

(gdb)

对gdb进行启动时,还可在命令行上对多个选项进行指定,也可采用下面的方式进行gdb:gdb

选择上述方式进行程序调时,编程人员便可根据自己的实际需求,指定相应类型的调试程序,这样操作起来便更加简单、便捷。

2.4 头文件及系统求助

若编程人员进行C语言编写时,只知道一个函数的大概形式,却忘记了确切的表达方式,或是不记得函数在那个头文件进行了说明,此时便可求助于系统。例如,编程人员想知识函数fread的确切形式,便可执行man fread系统,此时系统会输出函数的详细解释,并显示出函数fread所在的头文件说明。除了man fread系统之外,Info、Howto也是重要的头文件及系统求助工具,在Linux系统下计算机C语言的实际编程中,只要编程人员熟练掌握了求助工具,很多编程中遇到的难题便会迎刃而解,进而促进编程的效率与准确性[4-5]。

2.5 灵活应用综合知识

在Linux系统下计算机C语言的编程需要借助多方面知识,例如,函数、指针、数组、字符串、变量等方面知识,均有涉及。因此,C语言另一个编程技巧便是要灵活应用综合知识,编程人员在实际编写过程中,需要将这多方面知识整合起来,灵活、合理、有效地应用到编程中,才能使计算机C语言编写出来的程序更加完美。此外,针对不同的C语言结构而言,若需

要在编写同一个C语言程序时同时执行,必须要注意对综合知识的灵活运用。通过对与C语言编程相关知识的整合、衔接,才可编写出科学、合理的执行命令,进一步促进C语言程序编写的完美,达到最佳的C语言编写效果[6]。

2.6 多上机练习程序编写

在计算机技术应用的普及下,对于计算机C语言的编程人才也不仅仅是需要理论知识非常强的人,还需要实践能力强的人才。因此,在Linux系统下,学好计算机C语言编程技巧,便需要编程人员多上机练习程序编写,才能真正提高计算机C语言编程能力。通过上机练习,才可以使编程人员的理论知识与实际相联系,并且,编程人员在反复上机练习的过程中,还可以发现许多理论知识掌握不到的地方,在循序渐进中提高自己的编程能力,最终为正确、高效地进行计算机C语言编程奠定坚实基础[7-8]。

3 结束语

Linux系统具有很强的网络安全及网络管理功能,系统稳定性与可靠性强,目前已经成为操作系统中的重要力量。但在Linux系统下进行计算机C语言编程时,若对Linux系统及C语言的特点了解不全面,也会出现编程困难的现象,因此,在Linux系统下进行C语言编程时,就必须掌握一定的编程技巧,才能提高C语言程序编辑的效果,为进一步提升C语言编程人员的工作效率打好基础。

参考文献:

[1] 李俊玲.浅谈Linux操作系统下的C程序开发[J].中国科技财富,2012,5(5):314.

[2] 杨海峰,席振元,曹立硕.基于Linux的防火墙系统的研究与开发[J].科技风,2014,6(6):32-33.

[3] 王亚平.基于Linux管道技术的编程方法研究[J].科技资讯,2012,13(13):46.

[4] 李斌.基于ARM-Linux的可编程自动化控制器的研究与开发[D].2012.

[5] 夏凡,陈蜀宇,龙昌生.基于 Framebuffer 的嵌入式 Linux 图形库设计[J].计算机系统应用,2012,21(5):122-125.

[6] 王晓明.计算机C语言编辑程序探讨[J].长春教育学院学报,2014,30(5):145-146.

[7] 余勍,王捷.浅谈C 语言编程技巧在C语言学习中的应用[J].信息通信,2013,7(7):108.

[8] 韩伟,宋明伟,魏志强,等.基于Windows的华中世纪星数控系统PLC编程系统设计[J].机床与液压,2011,14(14):214-216.

猜你喜欢
C语言计算机
计算机操作系统
基于Visual Studio Code的C语言程序设计实践教学探索
穿裙子的“计算机”
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
基于C语言的计算机软件编程
C语言程序设计课程教学与学科专业相结合的探索
信息系统审计中计算机审计的应用
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用