有谁真正的理解过一个编译器呢?许多人认为TC很简单很落后,但是即便是这样简单的工具,到底有几个人真正的深入理解了呢?一个简单的编译器都不能理解,如何能成为高手,如何能深入的使用更加高级的工具呢?不要以为自己使用的是VC就很了不起,因为使用这样傻瓜化的工具只能让你看不到事物的本质。接下来我们就来深入的认识Turbo C编译器。
广义的编译器,包括了代码编译器(compiler),目标文件链接器(linker),库文件管理工具(如tc的tlib,gcc的ar),编译驱动工具(如VC的NMake,gcc的make),ANSI c/c++标准的头文件和库文件,扩展的头文件和库文件,集成开...



- [游客] 15611921075 在北京的mm 要一夜情的找我 方r 10/27 14:16
- [masmaster] 希望逝者安息,生者坚强。 08/11 17:10
- [游客] 路过顶一下!!!<img src="http://www.szplane.cn/image/cz_s 07/02 10:18
- [游客] 是3、5、6楼!! 03/13 12:07
- [游客] 3、4、5楼的游客都是吃饱撑的,你有什么资格说别人?至少别人把自己的想法和理解写了出来,供人参考。至 03/13 12:06
- [游客] 能提出问题还是好的,呵呵,各有各的看法吧 02/20 13:14
- [游客] 楼上的在放屁 02/20 11:45
- [游客] 那个p++是把物理地址向下移动了一位; 02/20 10:58
- [游客] 就实际问题讨论最好,目的性也强~ 02/05 16:49
- [mess] 正确。 02/05 11:00
[2010-02-22 11:50] 转载-深入认识Turbo C编译器
阅读全文 |
评论次数(0) |
浏览次数(987) |
所属类型(C语言)
[2010-02-10 16:40] c99
[百度百科]
c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。
C99有一部分是对于大字符集的优化(很多资料上写的是ANSI标准化),还加入了一些数据库函数,是C89之后的标准,我们用的C是C89标准的,C++是C89编写的,目前的C99标准其实在以前的编译器中就或多或少的支持了,目前完全支持的有这些:MinGW、Borland C++、dev-C++。
C99标准的新特性
在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C++...
c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。
C99有一部分是对于大字符集的优化(很多资料上写的是ANSI标准化),还加入了一些数据库函数,是C89之后的标准,我们用的C是C89标准的,C++是C89编写的,目前的C99标准其实在以前的编译器中就或多或少的支持了,目前完全支持的有这些:MinGW、Borland C++、dev-C++。
C99标准的新特性
在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C++...
阅读全文 |
评论次数(0) |
浏览次数(854) |
所属类型(C语言)
[2010-01-27 13:18] [转]一个细节引发的思考
在linux下编译c程序,如果在文件末尾不加一个空行,那么编译过程中会提示警告:
“warning: no newline at end of file.”
借助搜索引擎,很容易就找到了答案,比如:
“在源程序中写到最后一行时在按一下enter建,让行尾只空出一行,重新编译试一下。”
不错,能借助搜索引擎找到答案,这点很好。
可是你有再深入一点想想为什么要这么做么?
应付者通常是找到答案就了事了,根本没有深入去思考。
也许对他来说,在技术上,这样应付一下就可以了。
可是当应付成了习惯,就成为了阻碍他前进的绊脚石。
现代网络环境的发展,搜索引擎...
“warning: no newline at end of file.”
借助搜索引擎,很容易就找到了答案,比如:
“在源程序中写到最后一行时在按一下enter建,让行尾只空出一行,重新编译试一下。”
不错,能借助搜索引擎找到答案,这点很好。
可是你有再深入一点想想为什么要这么做么?
应付者通常是找到答案就了事了,根本没有深入去思考。
也许对他来说,在技术上,这样应付一下就可以了。
可是当应付成了习惯,就成为了阻碍他前进的绊脚石。
现代网络环境的发展,搜索引擎...
阅读全文 |
评论次数(0) |
浏览次数(493) |
所属类型(C语言)
[2010-01-27 13:14] [转帖]指针与下标访问数组的速度问题。
在一本书上写着用指针访问会比用下标访问快,当时没深入研究。后来在网上看到一篇关于堆栈的文章中写着用下标访问比用指针访问快。由此起疑,特地研究了一下。
其实不管是书上写的还是网上文章中写的都没有错,只是针对不同的场合。还是举几个例子比较直观:
1). 定义一个数组a[n],那么可以用a[i]和*(a+i)来访问数组元素;
2). 声明一个指向一个合法空间的指针p,那么可以用p[i]和*(p+i)来访问数组元素;
3). 定义一个数组a[n],将指针p指向a,即p=a,那么可以用a[i]和*(p+1)来访问。
对于前面两种情况,访问速度几乎没有差别。只有在访问第...
其实不管是书上写的还是网上文章中写的都没有错,只是针对不同的场合。还是举几个例子比较直观:
1). 定义一个数组a[n],那么可以用a[i]和*(a+i)来访问数组元素;
2). 声明一个指向一个合法空间的指针p,那么可以用p[i]和*(p+i)来访问数组元素;
3). 定义一个数组a[n],将指针p指向a,即p=a,那么可以用a[i]和*(p+1)来访问。
对于前面两种情况,访问速度几乎没有差别。只有在访问第...
阅读全文 |
评论次数(0) |
浏览次数(474) |
所属类型(C语言)
[2010-01-26 14:04] 变量的分类
变量的作用域:
全局变量(增加了函数间数据联系的渠道)
局部变量(形参也属于局部变量)
变量的存在时间:
静态存储方式
动态存储方式(形参、自动变量、函数调用的现场保护和返回值等)
变量和函数都有两个属性:
数据类型
数据的存储类型(静态的和动态,auto static register extern)
extern(外部变量)
如果不定义在文件的开头,其作用范围只限于定义处到文件结束。
如果希望某些外部变量只限于被文本引用,在定义外部变量时加一个static申明(不管有无static修饰,外部...
全局变量(增加了函数间数据联系的渠道)
局部变量(形参也属于局部变量)
变量的存在时间:
静态存储方式
动态存储方式(形参、自动变量、函数调用的现场保护和返回值等)
变量和函数都有两个属性:
数据类型
数据的存储类型(静态的和动态,auto static register extern)
extern(外部变量)
如果不定义在文件的开头,其作用范围只限于定义处到文件结束。
如果希望某些外部变量只限于被文本引用,在定义外部变量时加一个static申明(不管有无static修饰,外部...
阅读全文 |
评论次数(0) |
浏览次数(380) |
所属类型(C语言)
[2010-01-26 13:47] 指针法要比下标法访问数组速度快
要讨论这个问题,首先应该把编译器的优化分离开。编译器的优化能使这两种方法来的速度同样高效。使用指针可以访问任何内存,是比较危险的行为。使用数组下标能够有更好的可读性,这可以减小一部分危险,但不具有强制性,你可以写出A[-1]或者A[SIEZ+1]这样的程序。
main()
{
int a[] = {1,2,3,4};
int b[] = {5,6,7,8,9};
int i;
for(i = -4; i < 5;i++)
printf("b[%d] = %d\n",i,b[i]);
}
结果:
b[-4] = 1
b[-3] = 2
b[-2] =...
main()
{
int a[] = {1,2,3,4};
int b[] = {5,6,7,8,9};
int i;
for(i = -4; i < 5;i++)
printf("b[%d] = %d\n",i,b[i]);
}
结果:
b[-4] = 1
b[-3] = 2
b[-2] =...
阅读全文 |
评论次数(16) |
浏览次数(1333) |
所属类型(C语言)
页码数(1):
1