程序的定义
程序是一组计算机中能识别并执行的命令,只要能让计算机执行这个程序,计算机就会自动的,有条不紊的进行工作,计算机的一切操作都是有程序控制的,离开程序,计算机将一事无成。
计算机语言的分类
- 机器语言 :只有0和1单纯组成的指令
例如:
00010010 00000010 18 02
00000100 00000011 04 03
…
- 汇编语言 :有英文字母和数字等助记符组成的指令
例如:
ADD AL,3
POP eax
… - 高级语言 :高级语言可以分为面向过程的高级语言和面向对象的编程语言
面向过程的编程语言:根据具体问题分析出要解决问题所需要的步骤,然后把这些步骤一步一步的实现,在使用的过程中一个一个调用即可。例如常用的C语言、SQL语言就是面向过程的。
面向对象的编程语言:把构成问题的事务分解成各个对象,建立对象,之后在实现需求时引用对象的方法或者属性来实现即可。常见的面向对象的编程语言有JAVA、C++、VB、C#等等。
C语言的发展简介
1、最迟的C语言只是为了描述和实现Unix操作系统提供一种工作语言而设计的。
2、1983年,美国国家标准化协会(ANSI)成立了一个委员会,根据C语言问世以来各种版本对C语言的发展和扩充制定了第一个C语言标准草案(83ANSI)
3、1989年,ANSI公布了一个完整的C语言标准—ANSIX3.159-1989(常称ANSI,或者C89)
4、1999年,ISO推出了C99版本。C99是对C89及1995基准增补1的修订增补版本。
5、2011年,ISO正式发布了新的C语言的新标准C11,之前被称为C1X,官方名称为ISO/IEC 9899:2011。新的标准提高了对C++的兼容性,并增加了一些新的特性。这些新特性包括泛型宏、多线程、带边界检查的函数、匿名结构等。
C语言特点
1.优点:代码简洁,代码量小,执行速度快,功能强大,编程自由
2.缺点:写代码实现周期长,可移植性较差,语法限制不严格过于自由,经验不足容易出错,对于平台库依赖较多
3.C语言的源代码文件是一个普通的文本文件,扩展名必须是.c(即后缀,例如a.c)
常见的C语言程序结构
#include 包含所需要的函数库头文件(stdio.h、stdlib.h、string等等)
函数返回值类型 函数(函数参数){
数据类型 变量 = 数值
printf("要输出的内容");
scanf("数据表达类型",数据存储位置);
scanf( const char *__restrict __format, ... )
.....
return 根据函数返回值类型返回函数值;
}
注意:.
一个C语言程序必须要有main函数,其余的函数可以根据以上函数的定义类型来定义,之后在main函数中进行调用即可。
C语言的编译步骤
编译会帮助程序提前规划好内存空间
编译器在编译时就已经确定了静态全局和代码区的空间大小,等待程序运行,一旦开始运行,就会先给静态全局和代码区开辟空间,栈和堆是程序运行至定义处或者mallo开辟空间时再开辟空间
预处理
带#的语句就是预处理指令,预处理指令在预处理的时候进行处理
头文件展开
#include <stdio.h> 包含文件stdio.h (预处理时会将stdio.h文件拷贝至预处理文件中)
删除注释
注释有两种方法: // 行注释
/* */块注释
宏替换
#define 代表声明一个宏,在预处理时会将宏给替代
条件编译
条件不成立:
#if 0
#endif
条件成立:
#if 1
#endif
编译
将预处理文件编译成汇编文件,检查语法错误
汇编
将汇编文件编译成二进制.o文件
链接
设置运行环境,堆栈等,链接其它库
gcc编译过程
预处理:gcc -E test.c -o test.i 其中-E只进行预处理
编 译:gcc -S test.i -o test.s 其中-S只进行预处理和编译
汇 编:gcc -c test.s -o test.o 其中-c只进行预处理和编译和汇编
链 接:gcc test.o -o test.exe 生成可执行文件,文件名为test
文件后缀解释
.c C语言文件(源文件)
.i 预处理后的C语言文件
.s 编译后的汇编文件
.o 编译后的目标文件
简单的C语言程序实例
#include <stdio.h>
int main()
{
int sum = 0;
int a,b;
printf("请输入a的值:");
scanf("%d",&a);
printf("请输入b的值:");
scanf("%d",&b);
sum = a + b;
printf("a+b的值为:[%d]\n",sum);
return 0;
}
helloworld程序解释
#预处理指令,在预编译时处理
#include <stdio.h> 包含stdio.h文件,stdio.h类似于菜单
//两个斜杠是行注释
符号与()结合代表这个是一个函数
main()函数也叫主函数,整个程序中仅且只有一个main函数,程序从main函数开始执行
int 代表函数结束之后的返回值类型
return 结束这个函数,然后返回值,返回值的类型和函数定义时的返回值类型一致
{}里面的为函数体,所有需要执行的代码必须写在{}中
每一条代码必须以分号;结尾
printf是一个库函数,printf+()就是函数调用
int main()
{
printf("hello world");//打印到终端
return 0;
}
system库函数
作用:在程序中启动另一个程序
参数:待启动程序的路径名
原型:
int system(const char *command)
实例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
//system启动程序,如果这个程序系统可以找,不用加路径
//如果环境变量找不到,需要加路径
//windows路径以\\ 或者/
//例如:system("calc");//启动计算器
//system("C:\\User\\Administrator\\Desktop\\test.exe");
//或者system("C:/User/Administrator/Desktop/text.exe");
system("pause");
return 0 ;
}
防止VS出现4996警告编号
在文件的最前面加上
//这个宏最后放在.c文件的第一行
#define _CRT_SECURE_NO_WARNINGS
//或者使用这个
#pragma warning(disable:4996)