正文

C语言笔记 12005-02-14 00:23:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/book/213.html

分享到:

C语言笔记  by kingwei 1 概述 1.1 发展历史 C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体,因此也有人称它为中级语言。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类计算机上,从而形成了多种版本的C语言。 目前最流行的C语言有以下几种: ·Microsoft C 或称 MS C ·Borland Turbo C 或称 Turbo C ·AT&T C 1.2 程序结构举例 本文档中列举的代码均在Dev-C++中运行通过。 下面这个程序先重定向标准输入输出流,然后,从文件in.txt中读取数据,调用标准库函数qsort,升序排序后输出到文件out.txt。 #include <stdio.h>                              /* 包含头文件 */ #include <stdlib.h> #define MAX_LENGTH    100                       /* 宏定义 */ int length;                                     /* 定义全局变量 */ int list[MAX_LENGTH]; int Comp(const void *p1, const void *p2)        /* 定义函数体 */ {         int e1 = *((int *)p1);                  /* 定义局部变量 */         int e2 = *((int *)p2);         if (e1 > e2)                            /* 分支结构(if-else) */                 return 1;         else if (e1 < e2)                 return -1;         else                 return 0;                       /* 向主调函数返回值 */ } int main()                                      /* 主函数 */ {         int i;                  freopen("in.txt", "r", stdin);          /* 顺序结构 */         freopen("out.txt", "w", stdout);         while (scanf("%d", &length) != EOF)     /* 循环结构(while) */         {                 for (i=0; i<length; i++)            /* 循环(for)控制输入 */                         scanf("%d", &list[i]);                 qsort((void *)list, length, sizeof(int), Comp);                 for (i=0; i<length; i++)            /* 循环(for)控制输出 */                         printf("%d ", list[i]);                 printf("\n");         }                  return 0;                               /* 进程向系统返回值 */ } 1.3 编译、连接 任何一种计算机语言都要从某种人们容易理解的形式(源代码)转化成计算机可以执行的形式(机器指令)。对于C语言程序,首先需要对源代码作预处理,预处理器(preprocessor)对预编译指令进行处理,生成的代码通常存放在一个中间文件中。然后使用编译器(compiler),将中间文件编译成为目标文件。最后经过连接器(linker),将目标模块和库进行连接,并添加启动模块,才能最终成为系统可以加载和执行的程序。 开发环境              编译(compile)             连接(link) (工具)     C源文件 --------------> 目标文件 ------------>最终文件 Windows       *.c                     *.obj           *.exe 可执行文件 (VC)                                                *.lib 静态库文件                                                       *.dll 动态库文件 Linux         *.c                      *.o            *.--- 可执行文件 (KDevelop)                                          *.a   静态库文件                                                       *.so  动态库文件 因此,将TC、VC等程序设计软件称为编译器是不恰当的,这些软件是集成了编辑、预处理、编译、连接、调试等工具的集成开发环境。以Dev-C++为例,它提供了一个窗口界面的编辑环境和一些配置选项,但内部编译器仍然是gcc/g++、内部调试工具是gdb.exe。

阅读(5474) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册