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

学习C语言第23天(程序环境和预处理)

1. 程序的翻译环境和执行环境

在ANSIC的任何一种实现中,存在两个不同的环境

第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。
第2种是执行环境,它用于实际执行代码。

2. 详解编译+链接

2.1 翻译环境

每个源文件单独经过编译器进行处理

2.2 编译本身也分为几个阶段

2.3 运行环境 

3. 预处理详解

3.1 预定义符号

3.2 #define

3.2.1 #define定义标识符

在define定义标识符的时候,要不要在最后加上;?        不加

3.2.2 #define定义宏

#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义
宏(define macro)。

#define name( parament-list )stuff
其中的 parament-1ist是一个由逗号隔开的符号表,它们可能出现在stuff中。

   

3.2.3 #define替换规则

 3.2.4 #和##

 # 可以把参数转化成字符串

## 可以把位于他两边的符号合成一个符号

它允许宏定义从分离的文本片段创建标识符

3.2.5 带有副作用的宏参数

3.2.6 宏和函数对比

小型的,计算少的

3.2.7 命名约定

3.3 #undef

3.4 命令行定义

3.5 条件编译

3.6 文件包含

防止头文件被重复多次包含

http://www.lryc.cn/news/417591.html

相关文章:

  • Ubuntu22.04安装
  • 从入门到自动化:一篇文章掌握Python的80%
  • 开源的主流机器学习框架
  • RabbitMQ:发送者的可靠性之配置发送者重试机制
  • 基于深度学习的大规模MIMO信道状态信息反馈
  • 在Docker中部署Rasa NLU服务
  • SQL语句创建数据库(增删查改)
  • 微信小程序-Vant组件库的使用
  • 为什么企业需要进行能源体系认证?
  • 【日常记录-MySQL】EVENT
  • 嵌入式学习day12(LinuxC高级)
  • pytorch中的hook机制register_forward_hook
  • 使用Gin框架返回JSON、XML和HTML数据
  • 网工内推 | 国企运维工程师,华为认证优先,最高年薪20w
  • c# 使用异步函数实现线程的功能
  • MySQL之MySQL server has gone away复现测试
  • 编程深水区之并发④:Web多线程
  • 【实战指南】从提升AI知识库效果,从PDF转Markdown开始
  • Android 删除telephony的features
  • Linux驱动开发—编写第一个最简单的驱动模块
  • 科普文:微服务之Spring Cloud 组件API网关Gateway
  • Kubernetes中的CRI、CNI与CSI:深入理解云原生存储、网络与容器运行时
  • 【数据结构】二叉搜索树(Java + 链表实现)
  • java Brotli压缩算法实现压缩、解压缩
  • centos7.9 安装java相关组件
  • 在IntelliJ IDEA中,快速找到控制类(Controller类)中所有的方法,可以通过以下几种方式实现:
  • ChatGPT的强大之处:探究及与国内产品的对比
  • MySql审计平台
  • 深度学习6--深度神经网络
  • 有了Power BI还需要深入学习Excel图表制作吗?