现在的位置: 首页 > 综合 > 正文

C语言学习笔记—001C语言的介绍,编译过程原理,工具等

2019年09月15日 ⁄ 综合 ⁄ 共 2954字 ⁄ 字号 评论关闭

C语言学习笔记---001C语言的介绍,编译过程原理,工具等

创梦技术交流平台:资源下载,技术交流,网络赚钱:
交流qq群:1群:248318056
2群:251572072
技术交流平台:cre.iqee.cn
博文相关代码资源下载地址:cre.iqee.cn
-----------------------------------
-----------------------------------------------------------------------
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的标准来编译
---------------------------------------------------------------------

抱歉!评论已关闭.