C——编译预处理

2023-11-02

C语言提供的预处理(在编译之前进行)主要有三种:宏定义,文件包含和条件编译
预处理命令不是C语句,不用加分号

1、宏定义

  • 形式:

    1. #define 宏名 替换文本
    2. #define 宏名(参数) 替换文本
    #define N 5
    
  • 在C语言程序中,符号常量的定义要使用宏定义预处理命令

  • 宏名习惯用大写字母,但是也可以用小写

  • 宏定义不是C语句,行尾不必加分号

  • 宏定义使用原则,为先替换再计算`

    #define K 2+3
    k/k = 2+3/2+3 = 6
    
    #define ADD 10+5
    3*ADD/5 = 3*10+5/5 = 31
    
    #define f(x) x*x
    int a=6,b=2;
    f(a+b) = a+b*a+b = 20
    

2、文件包含

所谓“文件包含”就是指一个源文件可以将另一个源文件的全部内容包含进来,即将另外的文件包含到本文件中。C语言提供了#include命令用来实现文件包含

  • 形式:
    1. 系统目录: #include <文件名>
    2. 系统目录+用户目录: #include “文件名”
  • 常见的头文件
    1. 标准输入输出的头文件:#include <stdio.h>
    2. 数学函数的头文件:#include <math.h>
    3. 字符串函数的头文件:#include <string.h>

3、条件编译

  • 条件编译命令有三种基本形式:
1#ifdef 标识符
程序段1
#else
程序段2
#endif

2#ifndef 标识符
程序段1
#else
程序段2
#endif

3#if 表达式
程序段1
#else
程序段2
#endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C——编译预处理 的相关文章

  • MD5加密

    1 md5是什么 md信息摘要算法 一种被广泛使用的密码散列函数 2 md5的特征 一 长度固定 任意长度的数据都会输出长度相等的md5值 二 不可逆 三 对原密码进行改动改变成一个字节输出数据 四 很少碰到两个不同的数据产生相同的md5值
  • 算法该不该刷?如何高效刷算法?

    一 算法该不该刷 最近有小伙伴向我咨询一个问题 就是算法该不该刷 该如何刷算法呢 这个问题可谓太大众化了 只要你去某乎 某度搜索一下相关的解答 会有无数种回答 可见这个问题困扰了多少学习计算机的同学们 但不管回答有多少种 总结一句话就是 算
  • 科大奥锐密立根油滴实验数据_密立根油滴实验数据表格

    静态法 平衡法 第1粒油滴数据 序数 U V t g s v g m s 1 q i C n i 个 e C 10 19 u e e 0 1 235 9 98 1 50E 04 1 12E 18 7 1 61 0 62 2 235 9 88
  • chatglm-6b模型在windows的详细安装教程

    1 先是看了github的文章 如果打不开这篇文章 可能需要科学上网 即访问外网的VPN https github com THUDM ChatGLM 6B 2 准备 台式机 GPU是8G 关于是否可以在笔记本运行 我后面测试下 等我下一篇
  • 什么是频谱仪的RBW带宽和VBW带宽

    1 RBW Resolution Bandwidth 代表两个不同频率的信号能够被清楚的分辨出来的最低频宽差异 两个不同频率的信号频宽如低于频谱分析仪的RBW 此时该两信号将重叠 难以分辨 RBW 分辨率带宽 有人也叫参考带宽 表示测试的是

随机推荐

  • 在laravel中合并路由_一些实用的 Laravel 小技巧

    Laravel 中一些常用的小技巧 说不定你就用上了 1 侧栏 1 网站一般都有侧栏 用来显示分类 标签 热门文章 热门评论啥的 但是这些侧栏都是相对独立的模块 如果在每一个引入侧栏的视图中都单独导入与视图有关的数据的话 未免太冗余了 所以
  • 算法——回溯法(子集、全排列、皇后问题)

    参考 http www cnblogs com wuyuegb2312 p 3273337 html intro 参考 算法竞赛入门经典 P120 1 定义 回溯算法也叫试探法 它是一种系统地搜索问题的解的方法 回溯算法的基本思想是 从一条
  • IDA宏定义

    This file contains definitions used by the Hex Rays decompiler output It has type definitions and convenience macros to
  • 机器学习中的 K-均值聚类算法及其优缺点。

    K 均值聚类算法是一种常见的无监督学习算法 它可以将数据集分成 K 个簇 每个簇内部的数据点尽可能相似 而不同簇之间的数据点应尽可能不同 下面详细讲解 K 均值聚类算法的优缺点 优点 简单易用 K 均值聚类算法是一种简单易懂的算法 容易理解
  • String index out of range错误与解决方法

    在做算法题时遇到了报错 原因是字符串的索引越界 查看自己的代码 原来int的类型范围越界 int的范围 2147483648 2147483647 long的范围 9223372036854775808 922337203685477580
  • golang-nil切片和空切片

    package main import fmt func main var a int b make int 0 if a nil fmt Println a is nil else fmt Println a is not nil if
  • Spring Boot中使用token:jwt

    token由3部分组成 Header Payload Signature 其中Header记录了签名算法和token 的类型 Payload是以明文存储的一些信息 包括用户自定义信息 Signature是使用签名算法 对Payload结合服
  • Android RxJava:组合 / 合并操作符 详细教程

    前言 Rxjava 由于其基于事件流的链式调用 逻辑简洁 使用简单的特点 深受各大 Android开发者的欢迎 Github截图 如果还不了解 RxJava 请看文章 Android 这是一篇 清晰 易懂的Rxjava 入门教程 RxJav
  • 04-----关于Qt下编译大文件的源码时报too many section

    1 关于Qt下编译大文件的源码时报too many section 这种问题是因为编译源码文件太大造成的 解决的方法如下 因为不同Qt版本可能添加的宏不一样 所以大家可能需要试一试下面的编译参数 我是用 Wa mbig obj 这个参数解决
  • Java面试题大全(整理版)附答案详解最全面看完稳了

    文末有彩蛋 进大厂是大部分程序员的梦想 而进大厂的门槛也是比较高的 所以这里整理了一份阿里 美团 滴滴 头条等大厂面试大全 其中概括的知识点有 Java MyBatis ZooKeeper Dubbo Elasticsearch Memca
  • 前端面试之道

    小册介绍 如果需要用一句话来介绍这本小册的话 一年磨一剑 应该是最好的答案了 为什么这样说呢 在出小册之前 我收集了大量的一线大厂面试题 通过大数据统计出了近百个常考知识点 然后根据这些知识点写成了这本小册 这本小册可以说是一线互联网大厂的
  • Win7封装全过程

    安装操作系统是个漫长而无聊的过程 我们个人安装原版系统都要花费半小时以上的时间 想象一下 一个500 1000 上万人的公司要是按这种方式装的话要花费多少时间 人力 物力 还好 系统制造商早就考虑到了这一点 有自己的应对之策 这就是操作系统
  • P10.编程生成Excel内图表

    P10 编程生成Excel内图表 md 插入图片 openpyxl插入图片 openpyxl drawing image sheet add image 例 from openpyxl drawing image import Image
  • Chapter Two : Python 语言基础、运算符与表达式、程序的控制结构合集

    目录 一 Python 语言基础 1 Python 语法规则 2 关键字与标识符 3 变量 4 基本数据类型 5 输入与输出 二 运算符与表达式 1 算术运算符 2 赋值运算符 3 比较 关系 运算符 4 逻辑运算符 5 位运算符 6 赋值
  • 2023华为OD统一考试(B卷)题库清单(按算法分类),如果你时间紧迫,就按这个刷

    目录 专栏导读 华为OD机试算法题太多了 知识点繁杂 如何刷题更有效率呢 一 逻辑分析 二 数据结构 1 线性表 数组 双指针 2 map与list 3 优先队列 4 滑动窗口 5 二叉树 6 并查集 7 栈 三 算法 1 基础算法 贪心算
  • xml文件报错Unable to resolve column ‘xxx‘

    项目场景 问题描述 我在使用mybatis的逆向工程时生成的xml文件报错Unable to resolve column xxx 原因分析 需要连接到数据库 解决方案 点击右侧 填写数据库信息 点击测试 报错的话点击下放Set time
  • shell 格式化输出密码

    格式化输出 etc passwd 效果如下 root zabbix server day6 awk F BEGIN print 用户名 UID 家目录 print 1 3 6 etc passwd 用户名 UID 家目录 root 0 ro
  • Unity 移动方法总结

    Unity移动方法总结 在Unity3D中 有多重方式可以改变物体的坐标 实现移动的目的 其本质是每帧改变物体的position 通过Transform组件移动物体 Transform组件用于描述物体在空间中的状态 它包括位置 positi
  • transformers库的使用【二】tokenizer的使用,模型的保存自定义

    使用标记器 tokenizer 在之前提到过 标记器 tokenizer 是用来对文本进行预处理的一个工具 首先 标记器会把输入的文档进行分割 将一个句子分成单个的word 或者词语的一部分 或者是标点符号 这些进行分割以后的到的单个的wo
  • C——编译预处理

    编译预处理 1 宏定义 2 文件包含 3 条件编译 C语言提供的预处理 在编译之前进行 主要有三种 宏定义 文件包含和条件编译 预处理命令不是C语句 不用加分号 1 宏定义 形式 define 宏名 替换文本 define 宏名 参数 替换