首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
C语言学习笔记---001C语言的介绍,编译过程原理,工具等
时间:
2015-02-13 00:21:50
阅读:
178
评论:
0
收藏:
0
[点我收藏+]
标签:
C语言学习笔记---001C语言的介绍,编译过程原理,工具等
技术qq交流群:Dream:251572072
-----------------------------------------------------------------------
a.C语言的历史
起源
标准化
b.基于c的语言
编程语言都借鉴了c语言的特性
c++语言:包含所有c语言特性,增加了类和其他的特性支持面向对象编程
java:基于C++的,包含了一些c的特性
C#:是由java和c++发展起来的
Perl:脚本语言
c.c语言特性:
c语言是一种底层语言,为了适应系统编程的需要,c提供了对机器级别的
概念的访问,这些都是其他编程语言隐藏的内容.
d.c语言是一种小型语言,与其他编程语言相比,c语言提供了一套更为有限
的特性集合,很大程度上,c语言在程序上依赖于一个标准函数库
e.c语言是一种包容性语言,c语言假设用户知道自己在做什么,所以提供了更为广阔的自由度
---------------------------------
1.优点:
高效,可移植性,功能强大,灵活,标准库
2.缺点:c程序错误更加容易隐藏
不好理解,比如内核
c语言缺少类和包,所以编程规模不能很大,维护起来不方便
----------------------------------------
3.4. 3.4 C语言书写规范
正确的按照规范来编写C语言程序,可以方便程序代码的查
看,排错和维护。更加的有条理性
<1>语句,可以分开放在任意多行内。
<2>空格使我们更容易区分。
<3>缩进有助于轻松识别程序嵌套。
<4>空行可以把程序划分成逻辑单元。
<5>驼峰命名方式和下划线区分方式。
--------------------------------------------------------------------
/* Note:Your choice is C IDE */
#include "stdio.h"
//上面这个不可缺少,包含了c语言标准的输入输出相关信息
//程序可执行代码都在main函数中
//void main()
//{ 30*3;{7{}-3;}{}}
//大括号有截断的特性
//{7{}-3}中间的大括号,把7和-3分成了两段
//7后边不加分号是不对的
//{}里面包含的内容,对于外部是不可见的,是单向透明的
//-------------------------------------
//1.预处理:程序中以#开始的命令都是做预处理命令,由预处理器进行
a.预处理就是系统启动的时候先初始化的处理
b.如果#include <stdio.h>预处理后面,用了<>符号来引入的,那么gcc编译器会自动的
去系统的目录中找这个文件
如果用#include "demo.h",用"",gcc就会去当前目录中找这个文件
c.预处理指令作用是把其他文件的内容加入到当前文件中
/*处理. gcc -e
2.编译:把程序编译成二进制文件,hello.o文件,目标文件 gcc -c
3.链接:由连接器把目标代码和其他的附加代码整合在一起
这个时候才有了最终的可以执行的程序
gcc hello.o 这样执行完成了之后,会生成一个
hello.out
4.gcc编译器:
a.gcc是c语言最流行的编译器
b.gcc [options][filenames]
5.GNU Compiler Collection (gcc)
MinGW(Windows系统下的gcc工具)
不同计算机上的gcc工具,可能差别很大
gcc为32位的机器上提供了工具
gcc为64位的机器上也提供了工具
同一个程序,在32和64位上编译后,执行出来的结果是不一样的
6.
*/
int main{
return 0;
}
--------------------------------------------------------
4.4变量和赋值
4.1. 4.1变量
本质上,变量就是一块命了名内存空间,当访问这个变量
的饿时候,其实就是在访问这块内存空间。
类型:每一个变量都必须声明的它的类型,类型用来说明
变量所存储的数据的种类。C语言拥有很多类型,可以分为基
本数据类型和复合数据类型。
基本数据类型包含字符型(char)整型(int)浮点型(float)。
声明:任何变量在使用之前必须进行声明。
赋值:变量通过赋值的方式来获取值。变量在赋值或者以其
他方式使用之前必须进行声明,
-----------------------------------------------------------
5.注释的类型:
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
//1.注释
//单行注释
/*
多行注释
*/
}
-------------------------------------------------------
6.具体说一下gcc的编译过程:
a.预处理: 这个阶段用来处理所有的预处理指令
b.编译: 对预处理后的代码进行翻译工作,得到计算机所认识的格式,得
到的结果文件叫目标文件,扩展名是.o.
可以理解为:得到的类似于一个网站的所有网页都有,但是连接的关系
还没有,知道了一个网页不知道,下一个该跳到哪个文件
c.连接:吧所有的目标文件和其他的必要的文件合并在一起得到最终的
可执行文件
可以理解为:把网页上的所有连接给建立好
-------------------------------------------------------------------
7.gcc的常用选项
-o 用于指定最终生成可执行文件的名字
-E 只对源文件进行预处理
gcc -E demo.c
只进行预处理,处理完之后,代码会有所变化,
具体变化就是
#include 预处理指令没了,把预处理指令指定的文件包含了进来
-c 用于只对源文件进行预处理和编译工作
--------------------------------------------------------
编译标准:
8.c语言历史:
c语言的标准:
a.国际组织规定,在不同的年份规定了两个标准
c89标准----学校里学到的
c99标准----对c89做了一些扩展,有些语法在c89是不支持的,但是在
c99可以支持,如果,在c89中使用了c99的语法,需要用一个选项告诉
gcc,用c99标准来编译
用下面命令指定,c89,c99标准
-std=c89/-std=c99 用来指定编译所遵循的c语言的标准
不指定的时候用c89的标准来编译
---------------------------------------------------------------------
C语言学习笔记---001C语言的介绍,编译过程原理,工具等
标签:
原文地址:http://blog.csdn.net/lidew521/article/details/43775521
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!