1、面向对象通过语言建模适应问题,而不是通过对问题建模来适应语言;
2、定义程序目标-->设计程序-->编写代码-->编译-->运行程序-->测试和调试程序-->维护和修改程序
3、c语言编译器把源码编译成机器码,再用链接器来链接库函数,最后形成可执行文件;
4、调试:查找并修复错误;基本设计错误,错误地实现一个好的想法,忽视了输入检查导致程序瘫痪,圆括号放错地方,误用c语言打错字;
编程不是线性过程,或在不同步骤之间重复;或想到一个更好的解决方案;或改换设计思路;故要做好注释;
5、基本名 + 扩展名 = 文件名;有些UNIX限制文件名,要求基本名不超过8个字符,限制整个文件名不超过14个字符,
6、编译器把源代码文件转化为中间代码,链接器把中间代码和其它代码合并,把结果放在目标代码文件中(此时不能之间运行),目标文件代码缺失启动代码(startup code,启动代码是程序和操作系统之间的接口),可以在MS windows或linux系统下运行IBM PC兼容机。虽然目标代码相同,但是windows和Linux所需的启动代码不同,因为这些系统处理程序的方式不同;
目标代码还缺少函数库,所以链接器是把编写的目标代码,系统标准启动码和库代码合成一个文件,即可执行文件;有些系统需要分别运行编译程序和链接程序,另一些系统会自动启动链接器
7、GNU 编译器集合和LLVM项目
用gcc命令可以调用GCC C编译器,许多系统用cc作为gcc的别名,GNU和LLVM都使用-v显示版本信息;
cc -v ;显示编译器及其版本;
gcc和clang可以根据不同版本选择运行时选项来调用不同的c标准;
gcc -std=c99 inform.c//调用c99标准
gcc -std=clx inform.c//调用GCC接受c11之前的草案标准;
gcc -std=c11 inform.c//调用GCC接受C11标准;//clang这一点的用法和GCC相同;
8、LINUX系统
开源且类似于Unix的操作系统,在linux中准备c程序与在unix系统中几乎一样,不同的是要使用GNU提供的GCC公共域c编译器。编译命令类似于gcc inform.c;
pc的命令行编译器,需要下载Cygwin(模仿linux)和MinGW(windows 的命令提示模式中运行);
集成开发环境(IDE)提供了32位程序,64位程序,动态链接文件(DLL)
getchar()击键等待;
9、习题
(1)对于编程而言,可移植性意味着什么?
完美的可移植性是其源代码无需修改就能在不同计算机系统中成功编译的程序;
(2)源代码文件、目标代码文件和可执行文件的区别?
源代码文件包含程序员使用的任何编程语言编写的代码。目标文件包含机器语言代码,它不必是完整的程序代码。可执行文件包含组成可执行程序的完整机器语言代码;可执行文件是由链接器链接源码编译的机器码、库代码和系统启动码(startup code)组成;
(3)编程的7步骤?
定义程序目标,设计程序,编写程序,编译程序,运行程序,测试和调试程序,维护和修改程序;
(4)编译器的任务?
编译器把源代码翻译成等价的机器语言代码;
(5)链接器的任务?
链接器把编译器翻译好的源代码以及库代码和启动代码组合起来,生成一个可执行程序;
(6)需要把一个英寸单位转化为厘米单位(1英寸=2.54cm)的程序,该程序要提示用户输入英寸值。定义程序目标和设计程序?
定义程序目标:把英寸单位转化为厘米单位,并提示用户输入英寸的值,然后输出厘米的值;
设计程序:用输出printf提示,scanf接收值,存在num中,输出 num/2.54即可;