c语言中调用一个程序设计,第一章 C语言程序设计概述
1 计算机体系结构
计算机主要由硬件和软件的协作完成生活和工作中的绝大多数事情,例如听音乐,看电影,上网聊天,购物等等。
硬件主要包含CPU,内存,外存,IO设备等组成。
CPU:负责从内存中读取进程的数据和控制其他设备
内存:分为RAM(随机访问存储器)和ROM(只读存储器),只是负责暂时存储数据,断电后数据会消失。做程序开发时一般配置的内存为8-16G,而当台服务器的内存一般为64G。
外存:用于永久存储数据,常见的外存有机械硬盘和固态硬盘,其中固态硬盘的读写性能高于机械硬盘。
IO设备:主要是完成数据的输入输出,常见的IO设备包含鼠标键盘,声卡显卡等等。
软件的出现实现了人和计算机更好的交互
常见的软件包含运行于服务器端,基于命令行交互的Unix(Solaris),Linux(RedHeat Enterprise 7).
运行于PC端,基于图形界面交互的Windows10(PC),Linux(Ubuntu16),MacOSX10.10。
运行于手机或者嵌入式设备,基于语音手势的Android,IOS。Android是基于Linux内核发展而来,IOS是基于MacOSX衍生而来。
还有些运行在系统软件之上的应用软件,例如微信,支付宝,天猫等等。而系统软件底层都是采用C/C++编写的。
2 编程语言发展史
程序就是由指令系统加上数据集组成,而每个CPU都有自己的指令系统(由二进制的机器码01序列组成),PC上是X86指令系统,而手机上是ARM指令系统,这也就意味着PC上的程序不加修改不能直接到手机上运行,手机上的程序也是如此。这也就是最早的机器语言的由来,它的主要特点是高效,不能移植,可读性差,而且后期维护非常困难,想象一下要记那么多的机器指令是多么艰难的事情。
斗转星移,汇编语言和编译器的出现解决了需要记住非常多的机器指令的难题,但是还是没有从根本上解决移植性的问题,只是将机器指令转换为易懂的英文单词,然后由编译器编译成机器指令,因为计算机终归揭底智能识别0001110100110机器指令,至于原因暂时没有弄明白。
这里的代码是演示Windows上将汇编语言嵌套在C语言中使用,完成两个变量相加的结果
void use_asm(){
int a, b, c=0;
a = 4;
b = 6;
printf("a = %d \t b=%d\tc=%d \n",a,b,c);
_asm{
mov eax, a;
add eax, b;
mov c ,eax;
}
printf("a = %d \t b=%d\tc=%d\n", a, b, c);
}
void main(){
use_asm();
getchar();
}
时光再流转,在1972年C语言的诞生,凭借着可移植性,和汇编差不多的高效以及无所不能的强大功能,引领了IT行业的发展,Unix,Windows,Linux都是采用C语言编写,但是它也存在着对平台库依赖比较严重,只有标准C的部分是可移植(所有的主流操作系统都实现了C语言的标准库函数)等缺点。而后期的C++,Java,C#等编程语言在很多方面都吸收了C语言的优点,新增了面向对象(OO)等诸多的特性。
接下来看看运行在各大主流操作系统的C程序,顺便简要介绍对应平台的IDE
3 Windows C程序设计
3.1 Windows C HelloWorld
开发工具: VisualStudio2013
运行环境: Windows7
编译器: CL(VisualStudio2013提供的C语言编译器)
//导入共通的头文件
#include //#表示预处理,在预编译时执行 头文件中只是包含了函数的声明,函数的实现位于源文件中
#include
#include
//Windows平台的C语言版HelloWorld
#include "common.h" //包含共同的头文件
/* * 第一个C语言程序 * C语言的程序若想编译并运行,必须声明 main方法(有且只能有一个,作为程序的主入口),具体如下。 * @author tony 18601767221@163.com * @date 2015/11/11 */
void main(){ //void 表示main函数返回值为空
//这里的程序会从main函数的第一行执行到最后一行
printf("Hello World In Windows7 \n"); // BUG :程序中可能会出错的地方 断点:F11测试程序一步一步执行,然后观察程序执行结果
printf("Hello World In Windows7 again\n"); //每个语句以";"结束
getchar(); //等待输入任意字符回车就退出程序
/* C语言编译器不能识别中文符号,必须在英文状态下输入 VisualStudio2013运行时,解决方案的单个项目中只能有一个main程序,不然程序无法编译运行 */
}
关于VisualStudio2013的一些快捷键:
先介绍几个调试的快捷键吧,初接触C语言,可以使用IDE的调试功能来观察程序执行的过程
F5 :调试并运行
F11:每次执行一行代码
F10:每次执行一个方法
Ctrl+Alt+F7:重新生成解决方案,也就相当于重新编译代码
3.2 使用标准C库函数system完成Windows系统调用
在主流操作系统中可以使用命令来完成许多功能,而在C语言中就可以使用位于stdlib(标准库)的头文件中的system函数完成各大操作系统的命令调用
#include "common.h" //包含共同的头文件
/* * * * @author tony 18601767221@163.com * @date 2015/11/12 */
/* windows系统下的常用命令 */
void command(){
system("calc");//打开计算器
system("notepad");//打开记事本
system("stikynot");//打开便签
system("appwiz.cpl");//打开程序和功能
system("firewall.cpl");//打开防火墙
system("explorer");//打开资源管理器
system("regedit");//注册表
system("shutdown -s -t 600");//10分钟以后关机
system("shutdown -a");//取消关机
}
/* 程序的主入口 */
void mnain(){//void 表示main函数返回值为空
command();
getchar();//等待输入任意字符退出程序
}
4 Linux C程序设计
开发工具: VIM
运行环境: Linux(RedHeat Enterprise 7)
编译器: gcc
系统说明:采用VMWare WorkStation 虚拟了一个Linux(RedHeat Enterprise 7),RedHeat Enterprise或者开源版CentOS7是最常用的企业版Linux,安装教程自己网上收罗吧。其实Windows也是一个虚拟机,只是它是宿主机。
4.1 Linux C HelloWorld
VIM是一个基于命令行的强大编辑器,这里说下简单使用
通常都是采用SSH工具连接远程的Linux服务器,推荐使用SecureCRT,配置主机名,用户和密码之后就能连接,默认端口为22.
在命令行下输入VIM helloworld.c,然后”i”进入编辑模式,输入如下代码
#include //在Linux系统中也是有C语言的标准库函数
void main(){
printf("Hello World In CentOS7\n");
printf("Hello World In CentOS7 Again\n");
}
然后按下ESC,输入: wq即可编辑并保存完成在你登录之后的路径.然后使用gcc编译名为HelloWorld.c的源文件,gcc编译器有几个编译选项,借助这几个选项了解下Linux系统的C语言编译链接的过程。
C语言编译运行第一步-预编译,将#include的头文件替换到源程序中,可以使用gcc -E HelloWorld.c -o HelloWorld.o 执行预编译,查看将头文件中的内容替换到源文件后的结果。
C语言编译运行第二步-转汇编,操作系统都不认识C语言编写的源代码,必须转换成对应的汇编代码。可以使用gcc -S HelloWorld.s -o HelloWorld.c将源代码编译成汇编代码
C语言编译运行第三步-链接,在生成汇编代码之后,将系统库文件以及启动代码链接组成二进制的可执行文件。可以使用gcc -o HelloWorld.o HelloWorld.c来完成编译和链接。
4.2 使用标准C库函数system完成Linux系统调用
5. MacOSX C程序设计
开发工具: XCode6.4
运行环境: MacOSX10.10
编译工具:XCode自带的C语言编译器
系统说明:采用VMWare WorkStation虚拟一个MacOSX10.10操作系统并下载XCode6.4,需要解锁插件,具体过程网上搜罗。
5.1 MacOSX C HelloWorld
#include
int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n"); //
return 0; //返回整数0表示程序正常退出
}
在开发C/C++程序时还有一些跨平台的IDE,例如QT,CodeBlocks。在使用IDE开发大型项目时会提高开发效率以及降低后期的维护成本。
c语言中调用一个程序设计,第一章 C语言程序设计概述相关推荐
- 《Go语言圣经》学习笔记 第一章 Go语言入门
Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...
- PL/SQL程序设计 第一章 PL/SQL 程序设计简介
PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在O ...
- 《R语言实战》读书笔记--第一章 R语言介绍
1.典型的数据分析过程可以总结为一下图形: 注意,在模型建立和验证的过程中,可能需要重新进行数据清理和模型建立. 2.R语言一般用 <- 作为赋值运算符,一般不用 = ,原因待考证.用-> ...
- c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数
C语言编程:输入一行字符,至少50个,统计其中英文字母,数字,其他字母个数 楼上那个不能统计空格个数,我这个可以#include#includeintmain(){intcnt_c=0,cnt_n=0 ...
- c语言中定义一个十六进制的数,C语言如何定义一个16进制数
例: int main(){ int a; scanf("%p",&a);//16进制数输入%p是输入一个十六进制的数scanf("%llx",& ...
- [转载] 《python程序设计应用教程》第一章 python语言概述
参考链接: Python语言的优势和应用 第一章 python语言概述 1.1 python语言简介 ① 众多的开源的科学计算软件包都提供了python的调用接口,例如:计算机视觉库OpenCV.三维 ...
- 第一章c语言基础知识答案,第一章 C语言的基础知识练习题
第一章 C语言的基础知识练习题 第一章 C语言的基础知识 第一节 对C语言的初步认识 习题 1. 下列叙述中错误的是 B A)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始 ...
- powershell执行c语言文件,c语言中调用shell脚本
[转]c语言中调用shell脚本 关于在c语言中调用shell脚本,先是在百度上百度了一下 下面的这个应该是说的比较详细的 dreamerkxz.blog.163.com/blog/static/82 ...
- 山西农业大学c语言答案,第一章C语言及程序设计概述-东北农业大学教务处.doc...
全国高等农林院校"十一五"规划教材 C语言程序设计 孙力 主编 中国农业出版社 内容简介 本书是全国高等农林院校"十一五"规划教材之一. 全书共11章,分别介绍 ...
最新文章
- linux 屏幕输出 高亮_如何设置SecureCRT窗口输出代码关键字高亮设置
- 部署 DevStack - 每天5分钟玩转 OpenStack(17)
- Codeforces Round #660 (Div. 2)
- 原来做的一个语义搜索软件的界面
- C++之指针探究(十二):指针、下标、数组及其作函数参数
- 习题3.3--C语言程序设计第三版课后习题(苏小红)
- c语言编译题a b,C语言考试试题A卷.doc
- 京东评论爬虫(详解)
- 个人阅读作业+个人总结
- 二十、融会贯通之全流程操作
- agc024F Simple Subsequence Problem
- 炼石白小勇:合规与实战推动密码产业发展
- 日记 or 小小说 :想进腾讯的师弟师妹们,别学我 (二)
- python数据处理——取dataframe的一列或一行
- CRT (C run-time library)简介
- Kersion CMS 标签使用大全
- 1——从IOP思想开始
- 10进制转换16进制C代码实现
- 第一次PLC接线——PLC、电磁阀
- 解决暗影精灵6win键失效的问题