C语言【预处理器】

这篇具有很好参考价值的文章主要介绍了C语言【预处理器】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C语言【预处理器】

1、一些关于预处理的知识

​ C代码中,一般带 # 的都是预处理指令,包括 宏替换、文件包含、条件编译 等。

​ 为兼容一些老编译器, # 前后一般不写空格

​ 预处理指令后面不加分号。

2、宏定义
// 格式如下
#define 宏名称 (替换文本)		// 这个替换文本记得加上括号,因为是直接文本替换,可能会由于优先级而混乱
// 这个替换文本可以是字面量、表达式、函数等
// 带参数的宏。 举个例子
#define print_int(n) printf("%d\n", n)

void main(){
    // 宏的使用
    int a = 10;
    print_int(a);
}
// 宏可嵌套
#define PI 3.14
#define S PI*2*2
// 使用宏定义数据类型
#define BOOL int
取消宏定义。在想解除宏定义的代码前加 #undef 宏名称。之后的代码就不能使用定义好的宏了。
// 带参数的宏。举个例子
#define print_int(n) printf("%d\n", n)	// 这个参数不能指定类型,需要自己谨慎,但这种方法比函数高效
3、文件包含

​ 自定义头文件,用" " 。 引号里填相对路径或绝对路径。基于当前目录加./或不加

​ 头文件如果使用 " " 会先从当前目录下找,找不到再从系统找。

​ 头文件如果使用 <> 会直接从系统找。

Win和Linux路径分隔符分别是什么?文章来源地址https://www.toymoban.com/news/detail-746901.html

4、条件编译
#if 条件 ... #elif ... #else ... #endif		// 这个endif不能省略
#ifdef 宏名称 ... #else ... #endif				// 宏名称定义过则条件成立。
#if defined 宏名称 ... #elif ... #else ... #endif	// 同上。 
#ifndef 宏名称 ... #else ... #endif		// 宏名称没有定义过则条件成立。

到了这里,关于C语言【预处理器】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言——程序环境和预处理(再也不用担心会忘记预处理的知识)

    先简单了解一下程序环境,然后详细总结翻译环境里的编译和链接,然后在总结编译预处理。 在 ANSI C 的任何一种实现中,存在两个不同的环境 翻译环境:这个环境中源代码被转换为可执行的机器指令。 执行环境:执行二进制代码。 计算机如何执行二进制指令? 我们写的C语

    2024年02月09日
    浏览(50)
  • 【C语言】预处理

    在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 1.翻译环境 组成一个程序的每个源文件通过编译过程分别转换成目标代码 每个目标文件由链接器(linker)捆绑在

    2024年02月17日
    浏览(63)
  • C语言:预处理详解

    创作不易,来个三连呗! C语⾔设置了⼀些预定义符号, 可以直接使⽤ ,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义

    2024年01月19日
    浏览(41)
  • C语言·预处理详解

            C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的                 __FILE__  进行编译的源文件                 __LINE__  文件当前的行号                 __DATE__  文件被编译的日期                 _

    2024年01月21日
    浏览(43)
  • C语言【预处理器】

    1、一些关于预处理的知识 ​C代码中,一般带 # 的都是预处理指令,包括 宏替换、文件包含、条件编译 等。 ​为兼容一些老编译器, # 前后一般不写空格 ​预处理指令后面不加分号。 2、宏定义 3、文件包含 ​自定义头文件,用\\\" \\\" 。 引号里填相对路径或绝对路径。基于当

    2024年02月05日
    浏览(42)
  • 详解C语言—预处理

    目录 一、预处理 1、预定义符号介绍 2、预处理指令 #define #define 定义标识符:  #define 定义宏: #define 替换规则 3、预处理操作符# 4、预处理操作符## 5、带副作用的宏参数 6、宏和函数对比 二、命名约定 三、预处理指令 #undef 四、命令行定义 五、条件编译  1、单分支#if:

    2024年02月08日
    浏览(52)
  • 【C语言】预处理详解

             本文目录 1 预定义符号 2 #define 2.1 #define 定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 2.7 命名约定 3 #undef 4 命令行定义 5 条件编译 6 文件包含 6.1 头文件被包含的方式 6.2 嵌套文件包含 这些预定义符号都是语言内置

    2024年02月14日
    浏览(38)
  • C语言预处理详解

    上一篇博客中我们讲了C语言的编译与链接,在编译过程中有三个小阶段:预处理、编译、汇编。 本篇博客将详细讲述预处理部分的有关知识点 。 在C语言中,C语言本身设置了⼀些预定义符号,可以直接使⽤ ,预定义符号的处理也是在预处理期间进行的。 在这里介绍几个常

    2024年04月15日
    浏览(51)
  • YiOVE书源:不只是书源,还有对书源的一些预处理,比如提前查看书源数量,以及包含哪些小说站

    我是一个小说爱好者,阅读APP更是其中的效果斐然的不错宝器,平时自己也会收集一些书源。但是在这过程中产生了一些需求,比如:书源的数目是多少?书源链接还有效吗? 于是,自己基于Flask写了一个程序,可以解决以上需求,并且可以在网页端显示出该书源所包含的小

    2024年02月15日
    浏览(41)
  • 自然语言之文本预处理

    概念 分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。分词过程就是找到这样分界符的过程. 作用 词作为语言

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包