当前位置: 首页 > news >正文

发卡网站怎么做新闻头条最新消息

发卡网站怎么做,新闻头条最新消息,宿松 做网站,大连开发区做网站目录 ​编辑 1. C语言发展史 2. C语言特点 3. C语言标准 4. C语言编程机制 4.1 预处理(Preprocessing) 4.2 编译(Compilation) 4.3 汇编(Assemble) 4.4 链接(Linking) 结语 1. C语言发展史 C语言是由美国贝尔实验室的Dennis Ritchie于1972年设计开发的一种编…

目录

​编辑

1.  C语言发展史

2.  C语言特点

3.  C语言标准

4.  C语言编程机制

4.1  预处理(Preprocessing)

4.2  编译(Compilation)

4.3  汇编(Assemble)

4.4  链接(Linking)

结语


1.  C语言发展史

        C语言是由美国贝尔实验室的Dennis Ritchie于1972年设计开发的一种编程语言,它的设计目标是用于Unix操作系统的程序开发。

        在20世纪70年代末和80年代初,C语言逐渐成为主流的编程语言之一。它的广泛应用在于其简单易学、功能强大、可移植性强的特点,使得许多计算机公司和软件开发者将其作为首选语言。

        1990年代中期,C++语言的出现逐渐压过了C语言的优势。尽管如此,C语言仍然是许多高性能应用程序的编程语言,包括操作系统、嵌入式系统和设备驱动程序等。

        近年来,由于其广泛应用和高度成熟的编译器、文档和支持工具,C语言仍然是许多计算机科学教育课程的核心部分。此外,许多新的C语言标准和框架也在不断推出,以满足不断变化的编程需求。

2.  C语言特点

  1. 结构化编程:C语言采用结构化编程的思想,代码结构清晰简洁,易于理解和维护。

  2. 代码可移植性:C语言的编译器可以在多种平台上运行,代码可以在不同的操作系统和硬件上运行,具有很好的可移植性。

  3. 高效性:C语言的编译器生成的代码执行效率高,能够直接操作计算机硬件,利用底层资源,具有高效性。

  4. 指针:C语言具有指针的概念,可以直接访问内存地址,实现高效的数据操作。

  5. 库函数丰富:C语言提供了丰富的标准库函数,能够方便地实现各种功能,如字符串操作、文件操作等。

  6. 可扩展性:C语言可以使用其他语言编写的库文件,扩展其功能。

  7. 低级别控制:C语言具有低级别的控制能力,用户可以直接控制内存、硬件等底层资源,实现灵活的编程。

  8. 面向过程:C语言是一种面向过程的编程语言,适合于开发底层的系统软件和高效的算法。

        通过上述的介绍,已经了解了C语言的若干特点。C语言虽然是一种优秀的计算机程序设计语言,但也存在以下的一些缺点,了解这些缺点,才能够在实际使用中扬长避短。
    1. C程序的错误更隐蔽。C语言的灵活性使得用它编写程序时更容易出错,而且C语言的编译器不检查这样的错误。与汇编语言类似,需要程序运行是才能发现这些逻辑错误。C语言还会有一些隐患,需要程序员重视,比如将比较的"=="写成赋值"=",语法上没有错误,这样的逻辑错误不易发现,要找出来往往十分费时。
    2. C程序有时会难以理解。C语言语法成分相对简单,是一种小型语言。但是,其数据类型多,运算符丰富且结合性多样,使得对其理解有一定的难度。有关运算符和结合性,人们最常说的一句话是“先乘除,后加减,同级运算从左到右”,但是C语言远比这要复杂。发明C语言时,为了减少字符输入,C语言比较简明,同时也使得C语言可以写出常人几乎无法理解的程序。
    3. C程序有时会难以修改。考虑到程序规模的大型化或者说巨型化,现代编程语言通常会提供“类”和“包”之类的语言特性,这样的特性可以将程序分解成更加易于管理的模块。然而C语言缺少这样的特性,维护大型程序显得比较困难。

3.  C语言标准

        C语言标准通常指ISO/IEC 9899:C99或ISO/IEC 9899:C11。这些标准定义了C程序语言的语法、语义、库等的规范。C99是C语言的第二个国际标准,于1999年发布,引入了许多新功能,如可变长度数组、复合文字和行注释等,C11于2011年发布,进一步扩展了C99,并添加了一些新功能,如泛型选择和多线程库等。

4.  C语言编程机制

        编程机制是指在计算机程序中使用的各种规则和技术,包括程序设计、算法、数据结构、编程语言、编码标准、调试和测试等方面。其中,程序设计是编程机制的核心,它涉及到如何组织和设计程序的核心逻辑和数据结构,以及如何在其中使用编程语言和库。算法则是指在程序中描述问题的解决方案的过程或序列,数据结构则是指程序中用于存储和操作数据的方式。编程语言则提供了一种语法和语义规则来实现特定的编程机制,编码标准则规定了程序如何编写、格式化和文档化。调试和测试等技术则用于发现和修复程序中的错误和缺陷。综合使用这些机制可以编写高效、可靠、可维护和易于使用的程序。

C语言是一种基于过程的编程语言,具有以下几个基本机制:

  1. 结构化编程:C语言通过控制结构(如if-else、while、for等)来组织代码,实现结构化编程,使代码清晰、易于理解和修改。

  2. 函数:C语言中的函数是一个独立的代码块,接受一些输入参数并返回一个输出值。通过函数,可以将代码分解成小的模块,提高了代码的可读性和可维护性。

  3. 指针:指针是C语言中的一种重要数据类型,可以指向内存中的地址,允许对内存中的数据进行直接访问和操作。指针在C语言中被广泛使用,可以用来实现高效的数据结构和算法。

  4. 数据类型:C语言中定义了基本的数据类型,如整数、字符、浮点数等,也可以通过结构体和联合体来自定义复杂的数据类型,以满足不同的需求。

  5. 预处理器:C语言中的预处理器可以在编译代码之前对代码进行一些预处理,如包含头文件、定义常量、条件编译等,可以使代码更加灵活和可配置。

以上这些机制共同构成了C语言的编程范式,使其成为一种高效、灵活、可扩展的编程语言。

4.1  预处理(Preprocessing)

        预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,预处理之后得到的仍然是文本文件,但文件体积会大很多。gcc的预处理是预处理器cpp来完成的,你可以通过如下命令对test.c进行预处理:

gcc -E -I./inc test.c -o test.i

        或者直接调用cpp命令

$ cpp test.c -I./inc -o test.i

        上述命令中-E是让编译器在预处理之后就退出,不进行后续编译过程;-I指定头文件目录,这里指定的是我们自定义的头文件目录;-o指定输出文件名。

经过预处理之后代码体积会大很多:

X文件名文件大小代码行数
预处理前test.c146B9
预处理后test.i17691B857

预处理之后的程序还是文本,可以用文本编辑器打开。

4.2  编译(Compilation)

        这里的编译不是指程序从源文件到二进制程序的全部过程,而是指将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程。编译的指定如下:

$ gcc -S -I./inc test.c -o test.s

        上述命令中-S让编译器在编译之后停止,不进行后续过程。编译过程完成后,将生成程序的汇编代码test.s,这也是文本文件,内容如下:

// test.c汇编之后的结果test.s.file   "test.c".section    .rodata
.LC0:.string "a=%d, b=%d, a+b=%d\n".text.globl  main.type   main, @function
main:
.LFB0:.cfi_startprocpushl   %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl    %esp, %ebp.cfi_def_cfa_register 5andl    $-16, %espsubl    $32, %espmovl    $2, 20(%esp)movl    $3, 24(%esp)movl    24(%esp), %eaxmovl    %eax, 4(%esp)movl    20(%esp), %eaxmovl    %eax, (%esp)call    add movl    %eax, 28(%esp)movl    28(%esp), %eaxmovl    %eax, 12(%esp)movl    24(%esp), %eaxmovl    %eax, 8(%esp)movl    20(%esp), %eaxmovl    %eax, 4(%esp)movl    $.LC0, (%esp)call    printfleave.cfi_restore 5.cfi_def_cfa 4, 4ret .cfi_endproc
.LFE0:.size   main, .-main.ident  "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2".section    .note.GNU-stack,"",@progbits

请不要问我上述代码是什么意思!-_-

4.3  汇编(Assemble)

        汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件,是二进制格式。gcc汇编过程通过as命令完成:

$ as test.s -o test.o

等价于:

gcc -c test.s -o test.o

这一步会为每一个源文件产生一个目标文件。因此mymath.c也需要产生一个mymath.o文件

4.4  链接(Linking)

链接过程将多个目标文以及所需的库文件(.so等)链接成最终的可执行文件(executable file)

命令大致如下:

$ ld -o test.out test.o inc/mymath.o ...libraries...

结语

        经过以上分析,我们发现编译过程并不像想象的那么简单,而是要经过预处理、编译、汇编、链接。尽管我们平时使用gcc命令的时候没有关心中间结果,但每次程序的编译都少不了这几个步骤。也不用为上述繁琐过程而烦恼,因为你仍然可以:

http://www.hotlads.com/news/1637.html

相关文章:

  • 注册公司网站模板三只松鼠口碑营销案例
  • 山东做网站建设公司哪家好网络营销就是seo正确吗
  • 广州科 外贸网站建设网络广告营销有哪些
  • 上海网站制作网络推广新闻内容摘抄
  • 长沙市网站建设公司百度广告商
  • 福州网站设计培训seo企业培训班
  • 企业网站建设论文模板dw网站制作
  • 电子商务网站建设 下载百度关键字搜索排名
  • 昆山建设局网站营销模式都有哪些
  • 群晖搭建企业网站软文营销是什么
  • wordpress菜单锚点优化设计七年级下册语文答案
  • 深圳seo网站优化公司优化课程设置
  • 做网站麻烦么seo爱站网
  • 政务网站建设的三大核心功能是什么电商网站建设价格
  • 备案新增网站备案营销策划有限公司经营范围
  • 如何知道网站用什么程序做的西安网站seo服务
  • 网站设计品seo网站关键字优化
  • 代理加盟网站郑州今天刚刚发生的新闻
  • 12306网站多钱做的soso搜搜
  • 创建网站的准备千锋教育靠谱吗
  • 网站测试报告全媒体运营师报名费多少钱
  • 知识产权网站模板2345浏览器网页版
  • 济南seo网络优化公司整站优化 快速排名
  • 深圳建站服务公司google chrome 网络浏览器
  • 免费做app的网站哪个好人力资源培训与开发
  • 网站编辑没有经验可以做吗自己怎么给网站做优化排名
  • 个人网站建设推广策划书阿里网站seo
  • 商业网站建设目标搜索引擎广告投放
  • 做网上夫妻去哪个网站关键词排名优化教程
  • 怎么做网站vip并且收费软件开发公司网站