C语言,初次见面~
C语言是一门介于低级语言(如汇编语言)和高级语言(如Java,Python)之间的一门编程语言,所以它兼有两类语言的一些优点,并且具有自身的一些特点。
1、c语言的高效性。c语言具有通常是汇编语言才具有的微调试能力,可以根据具体情况微调使得程序更好的使用内存或获得更快的运行速度。
2、c语言的可移植性。相对于汇编语言、BASIC语言以及FORTRAN语言等,c语言程序能够稍作修改或甚至不做修改就能在不同计算机系统下运行。
3、强大而灵活。强大而灵活的UNIX系统大部分就是用c语言写的;其他语言(如FORTRAN、Perl、Python、Pascal、LISP、Logo、BASIC)的许多编译器和解释器也是用c语言写的。很多高级语言编译器都会把源程序代码编译为c程序而后才最后生成可执行的机器代码。
4、面向程序员。c语言是一种面向过程的结构化语言,它的编写非常灵活,也就导致了c程序的编写在不同程序员的操作下就五花八门,它的限制少(如指针运算,虽然这也带来了一些弊端),提供了开发者更多的自由。
下图显示了编译器在高级语言程序和机器之间扮演的角色:
关于c编程的基本策略:用程序将源代码文件转换为可执行文件。其基本步骤为编译和链接——编译将源代码转换为中间代码,而链接器把中间代码和其他代码合并(包括将编写的程序和预编译的库代码合并),生成可执行文件。
编译器产生的中间代码保存在目标代码文件(.obj)中,但这还不是一个完整的程序,它缺少启动代码以及库函数等,这些成分的补充需要链接器完成。
有些系统中,编译器工作时会自动启用链接器,而有些则需要分别运行编译程序和链接程序才能得到可执行文件。
UNIX系统下的c编程。首先编辑源代码,在UNIX系统下编译可以用cc命令。如
cc example.c
就对example.c源代码文件进行了编译,用 ls 命令可以看到编译后生成了可执行文件a.out。输入
a.out
可以执行该可执行文件得到程序的输出。
c编译器在编译时会生成与源代码基本名相同的目标代码文件,扩展名为 .o ,但是一旦链接器生成了完整的可执行文件这个 .o 文件就会被删除。但是当原始程序有多个源代码文件时,目标代码文件会被保留。
……
GNU项目中的一个编译器集合GCC中包含着GCC C编译器,使用gcc命令便可调用GCC C 编译器。
LLVM项目是一个与编译器相关的开源软件集合,它用Clang编译器处理c代码,可通过clang调用。
GCC和Clang编译器都对最新版本的C标准提供支持。
两者都可以通过-v显示版本信息,也都可以使用 cc 来作为gcc或clang的别名,如
cc -v
可以显示所使用的编译器及其版本。
C语言,初次见面~的更多相关文章
- 一封推荐信——android培训机构
我,男,23岁,即将毕业的大四学生,就读于天津一所二本院校,计算机科学与技术专业.大一期间,进入新校园,和同学到各个宿舍推销陶瓷杯,国美电器饮水机促销员,组团蹬车游市区,不断地去探索.尝试,追求内心向 ...
- 与TCP/IP协议的初次见面(一)
与TCP/IP协议的初次见面(一) 前言 今下午刚才女朋友那边回来,唉,算是情人节去找她吧,穷屌丝住不起好酒店,住的打折酒店,只是女朋友来姨妈了,万幸啊,牙还疼得不行,这几天光照应她了,没空写博客了. ...
- C语言 · 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- C语言 · Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...
- C语言 · 字符转对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Atitit 项目语言的选择 java c#.net php??
Atitit 项目语言的选择 java c#.net php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...
随机推荐
- Struts2学习-json
Struts2 实现JSON输出有2种办法1.把Action变成Servlet,使用传统做法2.使用Struts 内置功能完成 二. 1.导入配置,pom.xml,要去struts2的官网下载mvnr ...
- January 27 2017 Week 4 Friday
Procrastination is the thief of time. 拖延是时光之贼. Procrastination is the thief of time, besides, it is ...
- swagger使用二:swagger配置多个项目注释
在项目中采用swagger测试接口,提供接口给其他人员都非常的方便. 在swagger默认配置中,默认只显示接口访问层中的注释,可是很多的参数说明都已经在实体层中了啊?(如下图)不可能再把实体层中的模 ...
- jemter 使用if控制器,选择需要的内容
背景:需要根据人员传入的变量,来选择运行的环境,调用不同的参数,进行拼接,使用到if控制器 取到的数据,调用的就是test1的数据
- 【[USACO08NOV]奶牛混合起来Mixed Up Cows】
首先我们能够一眼看到4 <= N <= 16,那么就是它了,我们要压缩的状态就是它了 那么之后能我们用这个状态表示什么呢,我们要表示的显然是每只奶牛是否在队伍中 比如说10吧,转成二进制后 ...
- 报错Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
Caused by: org.hibernate.AnnotationException: No identifier specified for entity:. 原因: 1.没有给实体类ID 解决 ...
- PAT——1001. 害死人不偿命的(3n+1)猜想
卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...
- 【luogu P2195 HXY造公园】 题解
题目链接:https://www.luogu.org/problemnew/show/P2195 fir.吐槽题目(省略1w字 sec.考虑对一个森林的维护,每棵树用并查集维护. 操作1:输出当前查询 ...
- 2.java编辑器和java大致内容
离开了宇宙第一IDE.对java的编辑的选择有点茫然. .net只有一个你不用选择.java好几个.对于追求完美的我来说.总想选个完美的.上网百度可一下.最经典的当然是eclipse了. 但是觉得有点 ...
- win7利用winSCP上传文件到ubuntu server
1.为ubuntu server设置root密码: sudo passwd root 先设密码在登录 2. su root进入root账户: 3.安装SSH:sudo apt-get install ...