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

网站建设比赛方案7k7k小游戏大全

网站建设比赛方案,7k7k小游戏大全,t恤在线设计网站,建设单位发包许可证网站编译的过程——预处理 引言预处理包含头文件宏定义指令条件编译 编译、链接 引言 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.yayakq.cn/news/314635/

相关文章:

  • 网站 界面短视频广告投放平台
  • 苏州市住房和城乡建设部网站微信公众号二维码
  • 公司为什么要建立网站怎么黑人网站
  • 揭阳网站设计公司2015年做那个网站致富
  • 网站建站与优化怎么做网盘搜索引擎网站
  • 免费网站空间贵阳网站建设贵阳网站建设哪家好
  • 超级网站建设深圳网站制作台
  • 辅助教学网站开发技术讨论网站建设对策
  • 站长统计app软件十堰网站建设
  • 网站建设 目标微信公众账号申请注册
  • 购物网站开发项目意义建站哪个网站比较好
  • 网站排名seo对seo的理解
  • 网站策划中规划预测怎们做网站开发客户阿里云案例
  • 外贸网站 免费模板 使用 zencart业绩统计网站开发
  • 网站 正在建设中东莞做网站那家好
  • 视频直播网站建设广东建设厅证件查询网站
  • 做网站弄什么语言大数据技术就业和发展前景
  • 网站建设与维护好学吗企业查查天眼查询
  • 意识形态建设专题网站iis 7.5 网站
  • 铁岭公司做网站素材库图片免费下载
  • php个人网站怎么做网站开发的背景知识和技术
  • 站内优化seo十大免费ppt网站下载app
  • 厦门人才网官方网站献县网站建设
  • 网站怎么发邮件保定seo博客
  • 门户网站开发用什么框架好郴州网站优化
  • 呼和浩特做网站哪家公司好优秀个人网站图片
  • 广东网站建设哪里有机械电子工程专业知识网
  • wordpress 备份修改做网站域名怎么选有利于seo
  • 北京大兴最专业的网站建设公司西安做网站印象网络
  • 电子商务网站总体框架设计360搜索首页