sqrt函数的源代码

今天我看了一下gcc-3.4.3-22.1.1的源代码,真是受益匪浅,由于源代码里面的东西太多,我只给出一些大家常用到的函数的源代码。#include "f2c.h"#undef abs#include "math.h"extern double f__cabs (double, double);void c_sqrt (complex * r, complex * z){ double mag, t; double zi = z->i, zr = z->r; if ((mag = f__cabs (zr, zi...
2008-06-25 23:26 | 阅读 8095 次 | 评论 0 条

长跳转的实现

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2008-06-24 23:12 | 阅读 2847 次 | 评论 0 条

操作符认识 -- 全攻略

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2008-06-01 21:26 | 阅读 3748 次 | 评论 0 条

提高程序的运行速度 之 位运算

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ --------------------------------------------------------------------...
2008-05-06 13:43 | 阅读 2704 次 | 评论 0 条

给 初学者 的十点忠诫

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ --------------------------------------------------------------------...
2008-04-25 00:57 | 阅读 3474 次 | 评论 0 条

abs、 labs的返回值分别为int和long是很不恬当的!。。。

abs和labs的原型:int abs(int); long labs(long); 理由1:abs labs函数作用是求解一个数的绝对值,而一个绝对值就一定大于等于0.。 int和long型就有很大意义上的空间利用率浪费。 理由2:以int型为2个字节,long型为4个字节为例,int型的范围(-32768到32767) long型的范围(-2147483648到2147483647)。从数据类型的范围中,我们可以发 现一个问题。当用abs(-32768)和labs(-2147483648)时,大家可以想想一下结果会是 什么。当然结果分别是-32768和-214748364...
2008-04-08 00:45 | 阅读 2051 次 | 评论 0 条

rand()函数并不能达到真正意义上的产生随机数

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2008-04-11 15:51 | 阅读 3629 次 | 评论 4 条

C语言工程构架方法之一:TC2.0的工程的建立及运行方法

这里我所介绍的工程不是单单一个文件的工程,而是具有几十个上百个文件的工程.那么,我们应该如何管理这些文件呢?我们应该如何设计公共模块呢?我们应该如何对工程分工呢?... 这些都是一个C语言工程构架必须考虑的问题.以下将以TC2.0编译器为构架载体,给大家作详细地分析. 创建工程文件: 打开TC2.0的编辑窗口,按组合键ALT+F在下拉选项中选择"Write to"选项,按回车换行键, 接为着输入工程名并以".prj"后缀按回车换行键结束;设置当前工程: 按组合键ALT+P在下拉选项中选择"Project name"选项,按回车换行键, 接着输入刚才在创建工程文件时输入的...
2008-03-15 02:37 | 阅读 4466 次 | 评论 0 条

对const使用的理解.

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2007-11-17 07:42 | 阅读 3111 次 | 评论 0 条

自定义指向函数的指针的数据类型.

自定义指向函数的指针的数据类型在理解上比其它类型较难以理解.比如,自定义一个指向int (int,int);的函数的指针数据类型,是这样做,typedef int (*PointType)(int,int) ;这样看起来是不是很难理解.我们可以先看一看,定义一个指向函数的指针变量的方法:int (*p)(int,int); .我们可以把它这样理解为:int (*)(int,int) p;这样看待是不是有点像定义变量一样.然后,我们把typedef int (*PointType)(int,int) ;把它看成 typedef int (*)(int,int) PointType...
2007-11-16 06:42 | 阅读 3644 次 | 评论 0 条

实现用函数名作实参的编程举例.

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2007-11-15 08:29 | 阅读 3405 次 | 评论 0 条

0==i比i==0更不容易有失误.

在C语言编程中,失误是不可避免的.但我们可以采用更好的方法来减少错误或者提高找错的效率.比如,i==0在编程时很容易写成i=0,但在编译的时侯,不会报错.尤其对找错经验不足编程人员来说,这是很致命的.尤其是发现有问题,也不知道问题出在那里,这样的痛苦难以用语言来表达.但我们可以用另外一种方法就很容易找到错误了,比如,0==i在编程的时侯写成0=i,编译器一编译就会发现这是一个错误.因为0是一个常整形数据,不能被赋值.这样就很容易发现了.
2007-11-13 00:57 | 阅读 2050 次 | 评论 0 条

i+=4;的执行效率比i=i+4;高

在C语言中有些语句可以用同等效果的语句代替,它的执行效率会提高很多.i=i+4;在C语言中编译链接成可执行文件时的汇编指令如下:13F5:0201 8BC6 MOV AX,SI13F5:0203 050400 ADD AX,000413F5:0206 8BF0 MOV SI,AX而i+=4;的汇编指令为:13F5:020B 83C604 ADD SI,+04由此可见,一条i+=4;就是一条指令,而i=i+4;是三条指令.这很明显效率提高很多.我们再来分析一下出现这种情况的原因是什么.i=i+4...
2007-11-13 00:28 | 阅读 2067 次 | 评论 0 条

宏比函数实现在时间上的优越性探讨.

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2007-11-01 10:21 | 阅读 3897 次 | 评论 0 条

用地址替代变量的讨论

大家都知道,每一个变量都有自己的存储空间。而地址就是用来唯一地标识存储空间。这样就很容易让我们联想到:可以直接通过地址来代替变量,来参加程序的运算。也就是说,我们在程序运算中可以不用变量,而直接对地址进行操作。说了这么多,大家可能还不明白,我到底是什么意思。下面就举几个例子来说明。例一:#include<stdio.h>int main(void){ scanf("%d",(int*)0x0100); printf("%d",*((int*)0x0100)); }由上例可知,0x0100一个存储空间地址.我们通过int*强制类型转换,将0x0100的类型转换成in...
2007-10-24 23:07 | 阅读 1926 次 | 评论 0 条

测试一段代码运行的时间.

测试一段代码运行的时间原理很简单,就是在代码执行前记录一下时间,最后,在代码执行完后,再次记录一下时间.然后,将后面的时间减去前面的时间就是代码所执行的时间.获得时间的方法有多种,下面就介绍一种不太精确的计算时间的方法.我们用到的函数是clock(),它的声明在TIME.H中.它的作用是获得程序从开始运行到当前时间点所经历的时间周期.还有一个宏定需要介绍,它是#define CLK_TCK 18.2 .它的作用是一秒钟有18.2个时间周期.知道了这些我们就写一个例子:/*程序的作用:测试一个空语句的循环,并循环60000000次所需要的时间.*/#include<stdio.h>#inc...
2007-10-21 09:45 | 阅读 2694 次 | 评论 0 条

函数的可变参数详谈

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2007-10-05 13:29 | 阅读 4245 次 | 评论 0 条

让bioskey()来捕获键盘按键消息.

大家在初学编程的时侯,有没有作过这样的尝试:用scanf()函数来获得方向键和一些控制键的ASCII的值.比如:scanf("%c",&amp;ch);运行的时时侯,不论怎么按那些方向键和控制键,都没有什么反应.这是什么原因.大家可以想一下,%c是用来获取字符的输入,而这些方向键和控制键并不是ASCII的字符输入键.哦,原来是这样.那么怎样才能捕获这些不是字符输入键呢.首先,我们知道不能再用只捕获字符信息的方法来捕获这些键.那么,在C语言中有没有提供其它的捕获按键信息的函数.当然,C语言提供了这样的函数.它就是bioskey().由于函数名的字面意思可知"基本输入输出系统键".那么,bi...
2007-09-19 06:53 | 阅读 6153 次 | 评论 1 条

紧凑地使用内存,从位域开始.

*/ --------------------------------------------------------------------------------------*/ 出自: 快乐编程 http://hi.bccn.net/108519*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502*/ 时间: 2008-6-1*/ 声明: 尊重作者劳动,转载请保留本段文字*/ -----------------------------------------------------------------...
2007-09-18 21:11 | 阅读 2456 次 | 评论 0 条

拒绝全局变量与局部变量同名

拒绝全局变量与局部变量同名大家都知道全局变量的作用范围是从声明开始到文件结束,而局部变量的作用范围一般是在函数内从声明开始到函数结束.当函数内的局部变量与全局变量同名时,以局部变量为准.也就是说,全局变量在函数内部不产生任何影响.换一种说,就是当局部变量与全局变量同名的函数内部就不能引用全局变量,也就是函数内不能用到全局变量.这是很致命的.当函数需要获得或者修改这个全局变量的值时,这样会使得程序无法做到.因此,我们必须注意到这方面的问题,不要以为是小事.我在这里就介绍一下我个人的来预防全局变量与局部变量同名方法:你可以这样做,也就是这样规定:全局变量一定以下划线开始,如_全局变量名;而局...
2007-09-13 07:23 | 阅读 2529 次 | 评论 0 条