编写C语言程序需要注意的问题

在编写C语言的函数时,有几个要点需要我们牢记,因为它们影响到函数的效率和可用性。
4.5.1 参数和通用函数
通用函数是指能够被用在各种情况下,或者是可被许多不同程序员使用的函数。我们不应该把通用函数建立在全局变量上(不应该在通用函数中使用全局变量)。函数所需要的所有数据都应该用参数传递(在个别难以这样做的情况下,可以使用静态变量)。使用参数传递,
除了有助于函数能用在多种情况下之外,还能提高函数代码的可读性。不用全局变量,可以使得函数减少因副作用而导致错误的可能性。
4.5.2 效率
函数是C语言的基本构件。对于编写简单程序之外的所有程序来说,函数是必不可少的。
但在一些特定的应用中,应当消除函数,而采用内嵌代码。内嵌代码是指一个函数的语句中不含函数调用语句。仅当执行速度是很关键的场合下,才用内嵌代码而不用函数。
有两个原因使得内嵌代码的执行速度比函数快。首先,调用需要花费时间;其次,如果有参数需要传递,就要把它们放在堆栈中,这也要用时间。在几乎所有的应用中,执行时间上的这些微小开销是微不足道的。不过当时间开销至关重要时,使用内嵌代码消除函数调用,
可以把每次函数调用的开销节省下来。下面的两个程序都是打印从1到1 0的数的平方。由于函数调用需要花费时间,所以内嵌代码版本运行的比另一个要快。

时间: 2024-08-26 07:07:15

编写C语言程序需要注意的问题的相关文章

mysql5.7在centos下编写c语言程序操作数据库时,头文件#include<mysql/mysql.h>报错

问题描述 mysql5.7在centos下编写c语言程序操作数据库时,头文件#include<mysql/mysql.h>报错 mysql5.7在centos下编写c语言程序操作数据库时,头文件#include报错 解决方案 这是没有找到plugin_auth_common.h文件啊,你对照一下目录下面有没有这个文件啊...另外这个/usr/include/mysql/mysql目录看起来有点奇怪啊,你是不是多建了一层mysql目录

《C语言编程——零基础初学者指南(第3版)》一1.2 编写C语言程序需要什么

1.2 编写C语言程序需要什么 C语言编程--零基础初学者指南(第3版)在计算机上编写并执行C语言程序之前,需要一个C编译器(C compiler).C编译器用于创建(build)或编译(compile)C程序(编译是一个技术术语,指将程序转换为计算机可读的内容),让你在需要查看结果时可以运行已编译的程序.现在有许多非常优秀且免费的软件包,可以用它们来编辑并编译你的C程序.通过网络搜索即可找到诸多这样的软件.本书使用的是Code::Blocks(www.codeblocks.org ). 提示

编写C语言程序进行进制转换的问题实例_C 语言

题目     题目描述:      将M进制的数X转换为N进制的数输出.      输入:      输入的第一行包括两个整数:M和N(2<=M,N<=36).      下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出.      输出:      输出X的N进制表示的数.      样例输入:      16 10      F      样例输出:      15      提示:      输入时字母部分为大写,输出时为小写,并且有大数据.  思路

通过自己编写的C语言程序获取lcm正常格式的初始化数据代码

1正常格式初始化数据的C代码 2供应商给的lcm初始化数据 3编写的语言程序获取lcm正常格式的初始化数据代码 4获取lcm正常格式的初始化数据代码 注:为了保护供应商lcm初始化数据,下面的数据都是做参考的假数据. 1正常格式初始化数据的C代码 lcm正常格式的初始化数据的C代码是下面那样的.是一个结构体数组,每一个元素都包括三个基本数据,分别是寄存器地址.参数个数和对应的参数. static struct LCM_setting_table lcm_initialization_settin

《Linux C编程从入门到精通》一第2章 在Linux中编写C语言代码2.1 Linux中C语言程序开发流程和工具介绍

第2章 在Linux中编写C语言代码 Linux C编程从入门到精通 Linux作为一个操作系统,一项重要的功能就是要支持用户编程.传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强.易于移植的语言.Linux是用C语言写成的.反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc.调试工具gdb属于最早开发出来的一批自由软件.因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法. 2.1 Lin

《Linux C编程从入门到精通》——第 2 章 在Linux中编写C语言代码 2.1Linux中C语言程序开发流程和工具介绍

第 2 章 在Linux中编写C语言代码 Linux作为一个操作系统,一项重要的功能就是要支持用户编程.传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强.易于移植的语言.Linux是用C语言写成的.反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc.调试工具gdb属于最早开发出来的一批自由软件.因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法. 2.1 Linux中C语言程序开发流程和工

在osx系统下,能用c语言编写窗口化的程序么?

问题描述 在osx系统下,能用c语言编写窗口化的程序么? 在mac下,c语言能编写窗口化的程序么, 我在网上搜索了下,没有具体的回答,但是有人说程序是否窗口化和语言无关,只和 调用的api有关... 小弟菜鸟一个,求大神给解答下,如果调用api怎么调用啊.. 用的xcode,可我确实是太菜了,用不明白啊,哪位大牛推荐个网站,帖子,视频之类的, 让我学习学习,不胜感激-- 解决方案 可以的,使用qt.http://blog.csdn.net/libaineu2004/article/details

visual stu...-使用c++语言如何在visual studio 中编写可视化窗口程序

问题描述 使用c++语言如何在visual studio 中编写可视化窗口程序 使用c++语言如何在visual studio 中编写可视化窗口程序? 解决方案 就可以创建MFC 程序 剩下的就是代码实现功能的问题了 解决方案二: 最简单的已经使用MFC工程向导,你也可以手动写代码做Win32的基本程序结构. 解决方案三: 最简单的方法是用对话框当窗口用,在资源视图里可以创建对话框,代码里直接一句DialogBox()就行,对话框上可以直接托控件上去,非常方便.而且不用一些专门的软件,比如spy

请高手给个方向,用vb怎么得到其他语言编写的应用程序内容?苦思良久

问题描述 请高手给个方向,用vb怎么得到其他语言编写的应用程序内容?苦思良久 用了函数api getwindowstext wm-gettext 都取不到想要的内容,,我是用vb获取到相应的 句柄 但是有些内容没法获取 软件 是其他语言编写假如是c#的 请大神指点一下方向 怎么可以用vb获取想要的应用程序的任意显示的内容 不考虑数据加密的情况 就是类似 屏幕取词的 作用 想直接得到显示的数据 有什么个研究方向 例如是要掌握什么知识 解决方案 如果是获取C#程序的内容,那很简单. 参考:http: