• 关于C语言编译环境


    每一个高级语言都需要编译器转化为汇编语言,再通过汇编语言转化为可执行文件等等。

    gcc最初用于编译C语言,随着项目的发展gcc已经成为了能够编译C、C++、Java、Ada、fortran、Object C、Object C++、Go语言的编译器大家族。

    1. 1.Windows:

    1.1 windows的gcc编译

    windows命令行界面下,默认是没有gcc编译器,我们需要配置一下环境。由于我们安装了Qt,Qt是一个集成开发环境,内部集成gcc编译器,配置一下环境变量即可使用gcc。

    在path里加入C:\Qt\Qt5.5.0\Tools\mingw492_32\bin (带有gcc.exe的路径即可)

    1. C:\Users\A\test\code>gcc hello.c -o hello // 实际上这里边包括了四步,但是只用了一步代码就可以编译
    2. C:\Users\A\test\code>hello.exe

    1.2 简述编译原理

    实际上内涵了四步:

    预处理:gcc -E hello.c -o hello.i     //.

    编  译:gcc -S hello.i -o hello.s

    汇  编:gcc -c hello.s -o hello.o

    链  接:gcc    hello.o -o hello

    但是只用一步就可以完成以上的处理:gcc hello.c -o hello

    1.3 编译集成环境

    可以使用VS:Microsoft Visual Studio,我这里暂时用不到,后续补充。

    1.4 基本代码分析

    1) include头文件包含

    1. #include的意思是头文件包含,#include 代表包含stdio.h这个头文件
    2. 使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,需要包含stdio.h头文件
    3. 可以通过man 3 printf查看printf所需的头文件

    #include< > 与 #include ""的区别:

    1. < > 表示系统直接按系统指定的目录检索
    2. "" 表示系统在 "" 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,按系统指定的目录检索

    stdio.h是在linux操作系统的系统目录下:

    2) main函数

    1. 一个完整的C语言程序,是由一个、且只能有一个main()函数(又称主函数,必须有)和若干个其他函数结合而成(可选)。
    2. main函数是C语言程序的入口,程序是从main函数开始执行。

    3) {} 括号,程序体和代码块

    1. {}叫代码块,一个代码块内部可以有一条或者多条语句
    2. C语言每句可执行代码都是";"分号结尾
    3. 所有的#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的
    4. 所有的可执行语句必须是在代码块里面

    4) 注释

    1. //叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读
    2. /*     */叫块注释
    3. 块注释是C语言标准的注释方法
    4. 行注释是从C++语言借鉴过来的

    5) printf函数

    1. printf是C语言库函数,功能是向标准输出设备输出一个字符串
    2. printf(“hello world\n”);//\n的意思是回车换行

    6) return语句

    1. return代表函数执行完毕,返回return代表函数的终止
    2. 如果main定义的时候前面是int,那么return后面就需要写一个整数;如果main定义的时候前面是void,那么return后面什么也不需要写
    3. 在main函数中return 0代表程序执行成功,return -1代表程序执行失败
    4. int main()和void main()在C语言中是一样的,但C++只接受int main这种定义方式

    6) system函数: 启动程序

     

  • 相关阅读:
    【MFC】socket通信代码解析
    含文档+PPT+源码等]精品基于SSM的旅游信息管理系统的设计与实现[包运行成功]
    【申博攻略】北京交通大学2023年学术型博士招生简章有哪些变化?
    计算机毕业设计Python+Django的高考志愿填报辅助系统(源码+系统+mysql数据库+Lw文档)
    大模型日报|11 篇必读的大模型论文
    新鲜出炉!ECCV2022 107个开源数据集合辑,全球 AI 研究热点一网打尽
    简单易用的操作界面,让你轻松制作电子期刊
    voc数据集格式与yolo数据集格式的区别及相互转化
    Spring Cloud Stream 和SpringBoot整合RocketMq区别和选择
    整数划分——DP
  • 原文地址:https://blog.csdn.net/qq_32752467/article/details/126194092