| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 程序环境和预处理 -> 正文阅读 |
|
[C++知识库]程序环境和预处理 |
目录 程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。 第一种:翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 详解编译+翻译翻译环境请看图
编译本身也分为几个阶段:先看代码: ?如何查看编译期间的每一步发生了什么呢? 1. 预处理 选项 gcc -E test.c -o test.i 预处理完成之后就停下来,预处理之后产生的结果都放在test.i文件中。 运行环境程序执行的过程:
预处理详解预定义符号?这些预定义符号都是c语言内置的。 #define#define定义标识符语法: ? ? ? ? #define name stuff 举例: 如果定义的 stuff过长,可以分成几行写,除了最后一行外,每行的后面都加一个反斜杠(续行符)。? #define定义宏?#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(define macro)。 #define定义规则在程序中扩展#define定义符号和宏时,需要涉及几个步骤:
注意:
带副作用的宏参数
例如: MAX宏可以证明具有副作用的参数所引起的问题。 这里我们得知道预处理器处理之后的结果如下: 宏和函数对比宏通常被应用于执行简单的运算。比如在两个数中找出较大的一个。 那为什么不用函数来完成这个任务?原因主要是以下两个:
当然和宏相比函数也有劣势的地方:
宏有时候可以做函数做不到的事情。比如:宏的参数可以出现类型,但是函数做不到。 所以宏和函数各有优劣,按情况来取舍吧。 宏和函数的一个对比: ? ?区别:
命名约定一般来讲函数的宏的使用语法很相似。所以语言本身没法帮我们区分二者。 那我们平时的一个习惯是:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:44:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |