学习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 文件包含
防止头文件被重复多次包含


相关文章:
学习C语言第23天(程序环境和预处理)
1. 程序的翻译环境和执行环境 在ANSIC的任何一种实现中,存在两个不同的环境 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 2. 详解编译链接 2.1 翻译环境 每个源文件单独经过编…...
Ubuntu22.04安装
使用Vmware安装好后 首先执行下面命令,不然每次打开终端会出现To run a command as administrator (user root)… touch ~/.sudo_as_admin_successful换源 参考 sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo gedit /etc/apt/sources.list清空…...
从入门到自动化:一篇文章掌握Python的80%
Python作为一种高级编程语言,以其简洁明了的语法和强大的功能性,在全球编程社区内享有极高的声誉。本文将带领你从Python的基础语法入手,介绍其常用库的应用,以及如何将Python用于数据分析、网络爬虫和简单的自动化任务࿰…...
开源的主流机器学习框架
主流的开源机器学习框架包括: 1. TensorFlow:由Google开发和维护的深度学习框架,广泛用于生产环境和研究。支持多种平台,并具有丰富的工具和库支持。 2. PyTorch:由Facebook开发的深度学习框架,以其动态计…...
RabbitMQ:发送者的可靠性之配置发送者重试机制
文章目录 为什么需要重试机制?如何配置重试机制?测试重试机制使用重试机制的注意事项 在使用消息队列(MQ)系统时,网络故障是不可避免的问题,尤其是在与RabbitMQ等服务交互时。如果生产者在发送消息时遇到网…...
基于深度学习的大规模MIMO信道状态信息反馈
MIMO系统 MIMO系统利用多个天线在发送端和接收端之间建立多条独立的信道,从而使得同一时间可以传输多个数据流,从而使得同一之间可以传输多个数据流,提高数据传输速率。 优势 增加传输速率和容量,提高信号覆盖范围和抗干扰能力…...
在Docker中部署Rasa NLU服务
最近因为项目需要将rasa nlu配置到docker容器中供系统调用,本篇主要整理该服务的docker配置过程。 本篇的重点在于docker的使用,不在Rasa NLU。 系统环境:Ubuntu 18.04.6 1. Rasa介绍 Rasa是一个开源的机器学习框架,专为构建基于文…...
SQL语句创建数据库(增删查改)
SQL语句 一.数据库的基础1.1 什么是数据库1.2 基本使用1.2.1 连接服务器1.2.2 使用案例 1.2 SQL分类 二.库的操作2.1 创建数据库2.2 创建数据库示例2.3 字符集和校验规则2.3.1 查看系统默认字符集以及校验规则2.3.2查看数据库支持的字符集2.3.3查看数据库支持的字符集校验规则2…...
微信小程序-Vant组件库的使用
一. 在app.json里面删除style:v2 为了避免使用Vant组件库和微信小程序组件样式的相互影响 二.在app.json里面usingComponents注册Vant组件库的自定义组件 "usingComponents": {"van-icon": "./miniprogram_npm/vant-weapp/icon/index&qu…...
为什么企业需要进行能源体系认证?
通过能源体系认证,企业可以向公众和利益相关方展示其在节能减排方面的承诺和成就。这不仅提升了企业的社会责任形象,还增强了品牌的信誉度。在当今消费者更加关注环境问题的背景下,绿色企业形象有助于赢得市场和客户的认可与信任。 能源体系认…...
【日常记录-MySQL】EVENT
Author:赵志乾 Date:2024-08-07 Declaration:All Right Reserved!!! 1. 简介 在MySQL中,EVENT是一种数据库对象,其用于设定数据库任务自动执行。这些任务可以是任意有效的SQL语句&a…...
嵌入式学习day12(LinuxC高级)
由于C高级部分比较零碎,各部分之间没有联系,所以学起来比较累,多练习就好了 一丶Linux起源 寻科普|第二期:聊聊Linux的前世今生 UNIX和linux的区别: (1)linux是开发源代码的自由软件.而unix是…...
pytorch中的hook机制register_forward_hook
上篇文章主要介绍了hook钩子函数的大致使用流程,本篇文章主要介绍pytorch中的hook机制register_forward_hook,手动在forward之前注册hook,hook在forward执行以后被自动执行。 1、hook背景 Hook被成为钩子机制,pytorch中包含forwa…...
使用Gin框架返回JSON、XML和HTML数据
简介 Gin是一个高性能的Go语言Web框架,它不仅提供了简洁的API,还支持快速的路由和中间件处理。在Web开发中,返回JSON、XML和HTML数据是非常常见的需求。本文将介绍如何使用Gin框架来返回这三种类型的数据。 环境准备 在开始之前࿰…...
网工内推 | 国企运维工程师,华为认证优先,最高年薪20w
01 上海陆家嘴物业管理有限公司 🔷招聘岗位:IT运维工程师 🔷岗位职责: 1、负责对公司软、硬件系统、周边设备、桌面系统、服务器、网络基础环境运行维护、故障排除。 2、负责对各部门软件操作、网络安全进行检查、指导。 3、负责…...
c# 使用异步函数实现线程的功能
c#程序执行时 想要拖动窗口 需要使用线程,但是使用线程 对操作前端窗体很不友好. 所以写了一个异步函数,网上搜了一下,貌似异步函数比线程 更加友好,更加现代 做这个功能的原因是 主要是想等程序执行完 走一个提示.用线程很难做到 using System; using System.Threading; usi…...
MySQL之MySQL server has gone away复现测试
测试MySQL server has gone away复现条件 环境情形一报错信息复现测试 情形二报错信息复现测试 环境 Python: 3.8/3.9 MySQL: 5.x 情形一 报错信息 File "/usr/local/lib/python3.6/dist-packages/MySQLdb/cursors.py", line 319, in _querydb.query(q)File "/…...
编程深水区之并发④:Web多线程
Node的灵感来源于Chrome,更是移植了V8引擎。在Node中能够实现的多线程,在Web环境中自然也可以。 一、浏览器是多进程和多线程的复杂应用 在本系列的第二章节,有提到现代浏览器是一个多进程和多线程的复杂应用。浏览器主进程统管全局…...
【实战指南】从提升AI知识库效果,从PDF转Markdown开始
经常有人抱怨AI知识库精确度不够、答非所问。我有时候想想,会觉得其实AI也挺冤的,因为很有可能不是它能力不行,而是你一开始给的文档就有问题,导致它提取文本有错误、不完整,那后边一连串的检索、生成怎么可能好呢&…...
Android 删除telephony的features
比如删除android.hardware.telephony.subscription 找到这个文件:frameworks/native/data/etc/android.hardware.telephony.subscription.xml <!-- This is the standard set of features for devices to support Telephony Subscription API. --> -<perm…...
LeetCode单词拆分:动态规划详解,Apache介绍和安装。
单词拆分问题概述 单词拆分(Word Break)是LeetCode上经典的动态规划问题,题目要求判断给定字符串是否可以被拆分为字典中的单词。例如,给定字符串"leetcode"和字典["leet", "code"],返回…...
云原生应用的可观测性最佳实践
云原生应用的可观测性最佳实践 🔥 硬核开场 各位技术老铁,今天咱们聊聊云原生应用的可观测性最佳实践。别跟我扯那些理论,直接上干货!在云原生时代,可观测性是系统可靠性的关键,它能帮助我们全面了解系统…...
Virtuoso ADE L仿真结果分析实战:用Calculator快速提取带宽、相位裕度和噪声
Virtuoso ADE L仿真结果深度解析:从波形到关键指标的实战技巧 面对仿真完成后满屏的波形曲线,许多工程师常陷入"数据丰富但信息匮乏"的困境。本文将聚焦两级运放案例,演示如何用Calculator函数精准提取GBW、相位裕度、噪声谱密度等…...
基于扩展卡尔曼滤波器(EKF)的PMSM无位置传感器控制优化策略解析
1. 为什么PMSM需要无位置传感器控制? 永磁同步电机(PMSM)凭借高功率密度、高效率等优势,在电动汽车、工业伺服等领域广泛应用。但传统控制方案依赖机械位置传感器(如编码器、旋转变压器),不仅增…...
容器编排:Docker Compose与Kubernetes的适用场景
容器编排:Docker Compose与Kubernetes的适用场景 在容器化技术蓬勃发展的今天,容器编排工具的选择直接影响着应用的部署效率、运维复杂度和系统稳定性。Docker Compose与Kubernetes作为两大主流工具,分别在单机环境与分布式集群领域展现出独特优势。本文将结合真实项目经验…...
用快马快速构建战网更新睡眠模式诊断工具原型
最近在帮朋友排查战网(Battle.net)客户端更新卡顿的问题时,发现"更新服务进入了睡眠模式"这个提示特别常见。作为开发者,如果能快速验证各种修复方案的有效性,会大大提升排查效率。今天就用InsCode(快马)平台来快速搭建一个诊断工具…...
AI辅助开发:构思并实现智能交互式谷歌账号注册学习助手
AI辅助开发:构思并实现智能交互式谷歌账号注册学习助手 最近在做一个谷歌账号注册教程项目时,发现传统的图文教程存在几个痛点:用户容易迷失在步骤中、遇到错误时不知道如何解决、非英语用户理解困难。正好接触到InsCode(快马)平台的AI辅助开…...
AI Agent与边缘计算结合:低延迟场景下的智能体部署方案
AI Agent与边缘计算结合:低延迟场景下的智能体部署方案 关键词:AI Agent、边缘计算、低延迟部署、模型压缩、资源调度、隐私计算、多智能体协同 摘要:本文将像给小学生讲“快递柜前置配送奶茶”的故事一样,深入浅出地解释AI Agent和边缘计算是什么、为什么要把它们结合、如…...
自学渗透测试的第十天(HTTP进阶与Burp Suite基础)
4.2 HTTP进阶与Burp Suite基础(第10天)核心目标深化HTTP/HTTPS协议理解:掌握Cookie机制、会话管理、同源策略、CORS、HTTP方法的安全含义,以及常见请求头/响应头的安全影响。精通Burp Suite核心功能:熟练配置和使用Bur…...
Cesium实战指南4-Polylines图元高级应用解析
1. Polylines图元基础概念与核心价值 在三维地理可视化领域,Polylines(折线)是最基础也最常用的图元之一。简单来说,它就是连接多个点的线段集合,但千万别小看这个基础功能——从飞机航线到河流走向,从城市…...
