C-study(一)

C语言

起源:1972年,贝尔实验室的丹尼斯.里奇和肯.汤普逊,开发UNIX操作系统时设计C语言
设计初衷:将其作为程序员使用的一种编程工具

优缺点
1、设计特性:自顶向下,结构化编程,模块化设计
2、高效快速:可以根据具体情况微调程序以获得最大运行速度()或最有效使用内存()
3、可移植性:使用(针对特定系统的)编译器编译,源代码无需或少量修改就能在不同计算机系统中成功编译
4、面向程序员:可以访问硬件,操作内存位,有丰富的运算符,有大型c函数库
5、面向过程
6、指针、混乱

标准
ANSI/ISO标准(C89/C90):定义C语言和C标准库
C99:国际字符集、解决明显缺陷、适应关键数值计算
C11

计算机工作原理

中央处理器 CPU:运算
随机存取内存 RAM:存储程序和文件工作区
永久存储设备(硬盘):关机不丢失
外围输入输出(鼠标键盘屏):提供人机交互

CPU工作区:若干寄存器,每个寄存器存储数字。
指令集:CPU可理解的指令集合,eg:移动内存的一个数字到寄存器

储存在计算机中所有内容都是数字
计算机程序最终以数字指令码(机器语言)表示

CPU从内存中获取并执行一条指令,再获取并执行下一条指令,重复执行。
程序计数器自动更新)寄存器存储下一条指令的内存地址,CPU使用该地址获取和更新下一条指令,获取指令之后,在另一个寄存器中存储该指令(指令暂存),(程序计数器自动更新)寄存器存储下一条指令的地址
寄存器另外应用于数据操作,地址生成,条件判断等方面,寄存器原理寄存器组成

两数相加计算机操作步骤
1、从内存位置 2000 上把一个数字拷贝到寄存器 1。mov ax 2000
2、从内存位置 2004 上把另一个数字拷贝到寄存器 2。mov bx 2004
3、把寄存器2中的内容与寄存器 1中的内容相加,把结果储存在寄存器1中。add ax bx
4、把寄存器1中的内容拷贝到内存位置 2008。mov 2008 ax

编写C程序:

编译器:把高级语言程序翻译成计算机能理解的机器语言指令集

使用不同的编译器可以把同一份代码转换成不同类型CPU使用的机器语言程序

1、定义程序目标:程序需要哪些信息(参数),要哪些计算和控制(算法),程序应该报告什么信息(返回值)
2、设计程序:如何表示数据,用什么方法处理数据,用户界面,组织程序,目标用户
3、编写代码:使用文本编辑器创建源代码文件
4、编译:使用编译器,检查错误,源代码转化为可执行代码(编译器翻译为机器语言,链接器链接源代码和C库函数)
5、运行程序:可执行文件(机器语言表示的代码,由数字码表示的指令),执行命令或双击
6、测试和调试程序,查找并修复程序错误
7、维护和修改程序

编程机制

源代码文件:编写的内容被存储在文本文件中wordcount.c
基本名:wordcount
扩展名:c

源代码文件:包括编程语言编写的代码
可执行文件:包括组成可执行程序的完整机器语言代码

源代码文件 -> 可执行文件:
编译:源代码转换为中间代码(目标代码文件,包括机器语言代码)
链接:中间代码和启动代码、库函数合并为可执行文件

方便对程序进行模块化,独立编译单独模块,链接器合并已编译的模块,合并启动代码,合并预编译的库代码
编译过程

不同系统编译

UNIX系统编译

#编译,成功出a.out
cc inform.c
#执行a.out文件
a.out

在这里插入图片描述

GNU编译器集合

GCC:GNU编译器集合,包含GCC C编译器;
GCC有各种版本适应不同硬件平台和操作系统;
gcc命令调用GCC编译器;

#显示编译器及版本
cc -v 
#调用C99/C11标准编译
gcc -std=c99 inform.c 
gcc -std=c11 inform.c 

linux编译

安装GCC

#编译,成功出a.out
gcc inform.c
#执行a.out文件
a.out

PC windows编译

下载C编译器,通过命令行使用GCC
Cygwin:在自己的视图模仿linux
MinGW:在Windows命令行中运行
目标文件扩展名obj
编译和链接hello.c文件生成hello.exe
在命令行中输入hello即可运行

Windows和linux的程序可以交替运行,但不能访问另个系统的文件

集成开发环境

IDE 内置C(C++)语言的编辑器编译器
提供新建,保存,编译,运行,调试等功能

提供运行程序的多种环境,需要在创建项目时选择正确的项目形式,eg:DOS EXE,Console,Character Mode

程序执行完成之后执行程序的窗口立即消失,可加getchar();使程序暂停直到按下enter键,
需要输入时需要有2次getchar();

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
weixin102旅游社交微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值