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

通辽做网站建设百度关键词推广帝搜软件

通辽做网站建设,百度关键词推广帝搜软件,网站建设ppt,电商网站设计流程图预处理 文件包含 当预处理器发现#include指令时,会查看后面的文件名并把文件的内容包含到当前文件中 两种写法 尖括号:引用的是编译器的库路径里面的头文件。 双引号:引用的是程序目录中相对路径中的头文件,如果找不到再去上面…

预处理

文件包含

当预处理器发现#include指令时,会查看后面的文件名并把文件的内容包含到当前文件中

两种写法

  • 尖括号:引用的是编译器的库路径里面的头文件。

  • 双引号:引用的是程序目录中相对路径中的头文件,如果找不到再去上面的库里面找。

参数批量替换到文本中,这种实现通常称为宏

#define 宏名(记号) 内容
#define PI 3.1415926

参数传递

#define MUL(x) x * x
#define bb(i) printf("我是宏替换的:%d", i);
int main() {printf("%d", MUL(9));bb(10);
}

系统宏

宏名称含义
_ _ DATE _ _当前的日期,格式为类似May 30 2023 的字符串
_ _ TIME _ _当前的时间,格式为类似 10:23:12 的字符串
_ _ FILE _ _当前源代码文件的名称(含路径)的字符串
_ _ LINE _ _当前所处的行号是多少就替换为多少,整数

条件编译

根据条件,选择性地对某些内容进行忽略,相当于if-else语句

#ifdef PI   //ifdef用于判断是否定义了符号PI,如果没有的话则处理以下的指令#define M 666
#else   //如果定义了符号PI,那么就处理这个分支的语句#define M 777
#endif   //最后需要以endif指令结束整个判断
#ifndef PI   //ifndef 就是 if not define,跟ifdef反着的#define M 666
#else#define M 777
#endif
#define M 666
#if M == 666   //若M等于666那么定义K = 999#define K 999
#elif M == 777   //等同于else if语句#define K 888
#else    //else语句#define K 000
#endif

程序编译

编译过程

GCC原名为GNU C语言编译器(GNU C Compiler)

gcc执行编译的过程

  1. 预处理(Pre-Processing):首先会经过预处理器将程序中的预编译指令进行处理,然后把源文件中的注释去掉,处理include和define

  2. 编译(Compiling):处理好之后,就可以正式开始编译,首先会编译为汇编代码。

  3. 汇编(Assembling):接着就该将汇编代码编译为机器可以执行的二进制机器指令了,会得到一个二进制目标文件。

  4. 链接(Linking):最后需要将这个二进制目标文件与系统库和其他库的OBJ文件、库文件链接起来,最终生成了可以在特定平台运行的可执行文件。

其中 -E 后面的是源文件名称,-o 是预处理后生成的文件名称

gcc -E test.c -o test.i #代码在经过预处理之后,#include中的内容都替换过来
gcc -S test.i -o test.s #编译为汇编程序
gcc -c test.s -o test.o
gcc test.o -o test(test.exe)    #链接

执行可执行文件

也可以一步到位

gcc test.c -o test

多文件处理

gcc main.c test.c -o main

Make和CMake构建

Make

当需要构建大量内容时,让谁先编译,谁后编译,Make构建工具就可以解决这种组织的问题

支持使用变量、逻辑判断等高级用法

编写Makefile文件,有点Dockerfile的意思

 

只需要把需要执行的命令按照想要的顺序全部写到里面就可以了

targets : prerequisitescommand
  • targets:构建的目标,可以是一个普通的标签、文件名称等

  • prerequisites:前置条件,可以设定要求完成其他目标才能开始构建当前目标

  • command:构建需要执行的命令

main.exe: test.o main.o  #目标1:构建最终的程序,要求完成下面两个目标(注意最终目标需要写在第一个)gcc test.o main.o -o main
​
main.o: main.c  #目标2:构建目标为main.o,前置要求必须有main.c文件gcc -E main.c -o main.igcc -S main.i -o main.sgcc -c main.s -o main.o
​
test.o: test.c  #目标3:同样的,要求必须有test.c文件才能开始gcc -E test.c -o test.igcc -S test.i -o test.sgcc -c test.s -o test.o

在控制台输入make命令,就开始编译

 

CMake

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。能够生成各种各样的makefile或者project文件

编写CMakeList.txt文件

cmake_minimum_required(VERSION 3.22)
project(untitled C)
set(CMAKE_C_STANDARD 99)
add_executable(untitled main.c test.c test.h)
  • 第一行使用cmake_minimum_required来指定当前项目使用的CMake最低版本,如果使用的CMake程序低于此版本是无法构建的。

  • 第二行project指定项目名称,名称随意,后面的是项目使用的语言,这里是C。

  • 第三行set用于设定一些环境变量等,这里设定的是C 99标准。

  • 第四行add_executable用于指定一个编译出来的可执行文件,这里名称为untitled,后面的都是需要编译的源文件(头文件可以不写)

输入cmake命令进行生成

 cmake -S . -B test -G "MinGW Makefiles"

其中-S后面的是源文件目录,这里.表示当前目录,-B后面是构建目录,一会构建的文件都在这里面存放,最后-G是选择生成器(生成器有很多,甚至可以直接生成一个VS项目),这里需要生成Makefile,所以填写"MinGW Makefiles"

http://www.ds6.com.cn/news/19994.html

相关文章:

  • 高端网站建设专业新媒体营销
  • 网站建设制作开发seo免费优化
  • 做的网站有营销效果吗百度一下百度主页官网
  • 学做网站赚钱方法企业内训机构
  • 电子商务网站建设教学软文推广平台排名
  • 政府建设网站项目汇报工作域名查询ip爱站网
  • 用wordpress做网站app推广代理加盟
  • 建程网工程靠谱吗seo排名赚app
  • 东莞网站建设优化企业营销顾问
  • 网站的架设免费网页在线客服系统
  • 在哪里可以做公司网站营销推广seo
  • 网站视频放优酷里面怎么做搜索关键词软件
  • 重庆做网站建设网站宣传和推广的方法有哪些
  • 黑龙江省建设会计协会网站首页找培训机构的网站
  • 华大基因 网站建设公司刷关键词排名seo软件软件
  • 陕西做网站的公司地址上海网站建设推广服务
  • 网站代运营做哪些提高工作效率图片
  • 网站导航图怎么做的详细步骤百度网站优化软件
  • seo是做网站广西seo关键词怎么优化
  • 青海省建设局网站首页适合40岁女人的培训班
  • 东莞技术好的网站建设北京优化靠谱的公司
  • 做网站推广工作赚钱吗自助网站建设平台
  • 软件开发项目经理seo公司赚钱吗
  • 什么网站可以做h5互联网站
  • 南宁网站建设推广百度竞价点击价格公式
  • 日本做鸡做爱成人网站播放营销策划公司排行榜
  • 海盐网站建设谷歌广告怎么投放
  • 什么是网站的原型百度热搜榜排名今日第一
  • 做网站需要哪些技术外贸营销策略都有哪些
  • 石家庄网站如何制作免费开通网站