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

网站建设很难吗站长工具

网站建设很难吗,站长工具,东昌府聊城做网站费用,免费送衣服在哪个网站做编译的过程——预处理 引言预处理包含头文件宏定义指令条件编译 编译、链接 引言 C程序编译的过程:预处理 -> 编译(优化、汇编)-> 链接 编译和链接的内容可以查阅这篇文章(点击查看) 预处理 编译预处理是指&a…

编译的过程——预处理

  • 引言
  • 预处理
    • 包含头文件
    • 宏定义指令
    • 条件编译
  • 编译、链接

引言

C++程序编译的过程:预处理 -> 编译(优化、汇编)-> 链接
编译和链接的内容可以查阅这篇文章(点击查看)

预处理

编译预处理是指,对我们写的源代码进行预处理,生成临时文件。
预处理指令主要有以下 三种:

  • 包含头文件:#include
  • 宏定义:#define(定义宏)、#undef(删除宏)
  • 条件编译:#ifdef#ifndef

包含头文件

#include包含头文件有两种方式:

  • #include <文件名>:直接从编译器自带的函数库目录中寻找文件。这种情况用于包含编译器自带的头文件,也叫系统文件
  • #include "文件名":先从自定义的目录中寻找文件,如果找不到,再从编译器自带的函数库目录中寻找。这种情况用于包含程序员自定义的头文件

#include也包含其它的文件,如:.h.cpp或其它的文件。#include包含文件的本质是把需要包含的文件的内容复制进来。

C++98标准后的头文件分为C标准库和C++标准库

  • C的标准库:老版本的有.h后缀;新版本没有.h的后缀,增加了字符c的前缀。例如:老版本是<stdio.h>,新版本是<cstdio>,新老版本库中的内容是一样的。在程序中,不指定std命名空间也能使用库中的内容。
  • C++的标准库:老版本的有.h后缀;新版本没有.h的后缀。例如:老版本是<iostream.h>,新版本是<iostream>,老版本已弃用,只能用新版本。在程序中,必须指定std命名空间才能使用库中的内容。
    注意:用户自定义的头文件还是用.h为后缀。

宏定义指令

  • 无参数的宏:#define 宏名 宏内容
  • 有参数的宏:#define MAX(x,y) ((x)>(y) ? (x) : (y))

编译的时候,编译器把程序中的宏名宏内容替换,是为宏展开(宏替换)
宏可以只有宏名,没有宏内容。
在C++中,内联函数可代替有参数的宏,效果更好。
C++中常用的宏:

  • 当前源代码文件名:__FILE__
  • 当前源代码函数名:__FUNCTION__
  • 当前源代码行号:__LINE__
  • 编译的日期:__DATE__
  • 编译的时间:__TIME__
  • 编译的时间戳:__TIMESTAMP__
  • 当用C++编译程序时,宏__cplusplus就会被定义。
    可以自行打印一下宏的内容,如下:
cout << "__FILE__: " << __FILE__ << endl;
cout << "__FUNCTION__: " << __FUNCTION__ << endl;
cout << "__TIMESTAMP__: " << __TIMESTAMP__ << endl;
cout << "__cplusplus: " << __cplusplus << endl;

条件编译

最常用的两种:#ifdef#ifndef

#ifdef 宏名程序段一
#else程序段二
#endif

含义:如果#ifdef后面的宏名已存在,则使用程序段一,否则使用程序段二。

#ifndef 宏名程序段一
#else程序段二 
#endif

含义:如果#ifndef后面的宏名不存在,则使用程序段一,否则使用序段二。
什么是宏名存在?什么是不存在?
如果用#define定义宏,宏名就存在;没定义宏,宏名就不存在。宏的内容无所谓,只要有名字就行。
ifdefifndefelseendif这些是条件编译语句,与条件判断语句不是一回事。
在C++中,头文件只需要被包含一次就行了。在C/C++中,在使用预编译指令#include的时候,为了防止头文件被重复包含,有两种方式。

  • 方式1:用#ifndef指令。
#ifndef _CAR_#define _CAR_//代码内容。
#endif
  • 方式2:#pragma once指令放在文件的开头
#pargma once
#include <iostream>using namespace std:
...

#ifndef方式受C/C++语言标准的支持,不受编译器的任何限制;而#pragma once方式有些编译器不支持。
#ifndef可以针对文件中的部分代码;而#pragma once只能针对整个文件。
#ifndef更加灵活,兼容性好;#pragma once操作简单,效率高。

编译、链接

点击查看这篇文章
感谢浏览,一起学习!

http://www.hrbkazy.com/news/5958.html

相关文章:

  • 做百度网站还是安居客网站谷歌怎么投放广告
  • 备案的域名做电影网站贵州seo技术培训
  • 关于网站建设相关文章如何刷seo关键词排名
  • 平台网站建设公司网站数据统计工具
  • 网站做不好一直不交付怎么办百度贴吧网页版入口
  • 网站怎么做支付宝支付接口如何获取热搜关键词
  • 职工素质建设 网站客户营销
  • 衡水市做网站十大网络推广公司
  • 深圳民治网站建设seo的主要分析工具
  • 新疆做网站找谁重庆seo杨洋
  • 网站建设三个友好免费seo工具汇总
  • 做it行业招标网站有哪些衡水网站seo
  • 石家庄大型网站建设分销系统
  • 网站设计鉴赏二级域名网站免费建站
  • 中国摄影官方网站自媒体135免费版下载
  • 2018什么做网站怎么做一个网站的步骤
  • 极客网站建设劳动局免费培训项目
  • 做商城网站需要多少钱seo标签优化
  • 顺义深圳网站建设公司百度域名查询官网
  • 湖南健康卡app西安seo建站
  • 网页游戏网络游戏seo分析报告
  • 做旅游游客产品的网站宁夏百度公司
  • 旅游网站规划设计方案搜索引擎营销方案例子
  • 怎么免费制作一个企业网站东莞seo建站
  • 公司国外网站建设谷歌竞价广告
  • 成都高新seo东莞优化网站制作
  • 新手学做网站txt网络舆情监控系统
  • 洛阳恒凯做的网站有哪些市场调研流程
  • 容桂医疗网站建设自助建站网站
  • 网站建设合同模板站内推广方式