C语言中的预处理指令的其中之一——#line

news2024/12/28 20:44:24

目录

  • 开头
  • 1.什么是预处理指令——#line?
  • 2.预处理指令——#line的实际应用
    • 改__FILE__宏
    • 改__LINE__宏
    • 改__FILE__宏和__LINE__宏
    • ……
  • 下一篇博客要说的东西

开头

大家好,我叫这是我58。今天,我们要学一下关于C语言中的预处理指令的其中之一——#line的一些知识。

1.什么是预处理指令——#line?


预处理指令——#line,是一个用来改变__LINE____FILE__的预处理指令,本质上其实没有什么太大的用处,预处理指令——#line的构造是这样的:#line digit-sequence ["filename"]1,其中,必须要有的digit-sequence用来会改变__LINE__宏的内容,最低为0,最高为2147483647,相当于一个INT_MAXdigit-sequence这个值不能为0,也不能为负数,因为行号一般是从1开始逐渐增长的,不可能会出现0或者负数,所以,这就是digit-sequence这个值不能为0,也不能为负数的原因,而filename字符串则用来修改宏__FILE__的值,并且文件名你想怎样取就怎样取,不取也是可以的,像\033[33mm\033[0m或者__LINE__这样的字符串都是可以的,当然,空字符串也行,总之,任何你想到的字符串都可以放到这里面,当然digit-sequencefilename这两个参数都有共同的限制,那就是,这两个参数只能代入字面常量或者某一个宏,要不然就会报错。这就是C语言中的其中一个预处理指令——#line,也是一个简简单单的预处理指令,狗看了都会懂。

2.预处理指令——#line的实际应用

改__FILE__宏

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#line __LINE__ "尼嚎我是渗进.c"
int main() {
	printf("%d %s", __LINE__, __FILE__);
	return 0;
}

改__LINE__宏

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define A 114514
#line A
int main() {
	printf("%d %s", __LINE__, __FILE__);
	return 0;
}

改__FILE__宏和__LINE__宏

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define A 88
#define B "Hello,world.c"
#line A B
int main() {
	printf("%d %s", __LINE__, __FILE__);
	return 0;
}

……

下一篇博客要说的东西

C语言中的预处理指令中的其中一对——#ifdef#ifndef

在这里插入图片描述


  1. 选自C语言中的预处理指令——#line的简介 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2094782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4-6 使用bios 中断 显示字符

1 显示的逻辑 bios 首先通过中断&#xff0c;访问到 最前面的中断向量表&#xff0c;然后 通过中断向量表然后 访问到具体的 bios 的函数&#xff0c;这些函数是bios 自带的&#xff0c;具体的位置 &#xff0c; 我也不知道。只知道有这个函数。 3 显示的原理 &#xff1b; 主要…

纯蓝图事件

一、创建事件分发器 1、蓝图中可直接添加Event Dispatchers事件分发器 2、还可以设置事件的传递参数 3、直接将创建好的事件分发器拖入EventGraph中会显示出Call、Bind、UnBind、Assign等方法 二、广播事件通知 三、订阅、取消订阅事件通知

算法数学加油站:一元高斯分布(正态分布)Python精美科研绘图(PDF、CDF、PPF、ECDF曲线;QQ图)

这类博客针对算法学习时可能遇到的数学知识补充&#xff0c;但不会太多废话&#xff0c;主要是公式结合Python代码精美绘图理解&#xff01; 本期重点&#xff1a; 参数&#xff1a;期望、标准差曲线&#xff1a;概率密度曲线PDF、累积概率密度函数CDF、百分点函数PPF应用&am…

14:LDO电源模块的布局

1.器件要和边框相聚5mm的距离作为工艺边&#xff0c;工艺边可以布线&#xff0c;但不能摆放器件 LDO布局原则 ①输出靠近负载端 和DCDC布局一样

Springcloud微服务合并打包,重复路径引发的血案

你好&#xff0c;我是柳岸花开。 在微服务架构的世界里&#xff0c;各种服务之间的接口调用犹如人类的神经系统&#xff0c;构成了整个系统的核心。然而&#xff0c;正是这些看似简单的接口路径&#xff0c;可能会引发一场惊天血案。今天&#xff0c;我们就来揭开一起因“重复路…

Git高手必备:掌握这些指令,轻松玩转版本控制(一)

前言 注&#xff1a;本文下的除非特殊声明&#xff0c;否则一律不作为实际加号&#xff0c;仅表示连接 所有的版本控制系统&#xff0c;只能跟踪文本文件的改动比如txt文件&#xff0c;网页&#xff0c;所有程序的代码等&#xff0c;能清楚的知道改动了什么。但是类似于图片、…

嵌入式全栈开发学习笔记---Linux系统编程(文件编程)

目录 Linux文件概述 系统IO 创建文件creat() 打开文件open() 写文件write() 读文件read() 文件指针---lseek() 系统IO拷贝 标准IO 标准IO和系统IO的区别 缓冲区的分类 行缓存测试 打开文件fopen() 写文件fwrite() 读文件read() 标准IO拷贝 标准IO和系统IO的效…

实践:根据时区显示时间

背景 在数据库中存储时间&#xff0c;不会自动对时区进行处理&#xff0c;要想针对不同时区作时间显示的适配&#xff0c;需要在程序中做适配&#xff0c;本文即为解决这一问题的实践案例。 数据库存 UTC 时间 插入记录时&#xff0c;使用 datetime.utcnow()获取当前 utc 时…

MFCC C++实现与Python库可视化对比

MFCC C实现与Python库对比 MFCC理论基础 在音频、语音信号处理领域&#xff0c;我们需要将信号转换成对应的语谱图(spectrogram)&#xff0c;将语谱图上的数据作为信号的特征。语谱图的横轴x为时间&#xff0c;纵轴y为频率&#xff0c;(x,y)对应的数值代表在时间x时频率y的幅…

动作损失 ​ 的定义

动作损失 La是在弱监督时间动作定位&#xff08;Weakly-Supervised Temporal Action Localization, WSTAL&#xff09;任务中用于优化模型的一种损失函数。它的主要目标是确保模型能够准确地预测视频中动作发生的时间段&#xff0c;并对视频级别标签进行良好的分类。下面是对动…

【Python系列】 Python 中的枚举使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PyTorch中,动态调整学习率(Learning Rate Scheduling),也可以根据损失函数的损失数值自动调整学习率

在PyTorch中&#xff0c;动态调整学习率&#xff08;Learning Rate Scheduling&#xff09;是一种常用的技术&#xff0c; 用于在训练过程中根据一定的策略调整学习率&#xff0c;以优化模型的训练效果和收敛速度。以下是一些常见的学习率调整策略&#xff1a; 1. **固定步长…

金融科技初创企业建设指南

金融科技领域正以前所未有的速度发展,重塑我们与金钱和金融服务的互动方式。随着我们迈向 2025 年,尖端技术的融合、不断变化的消费者期望以及全球对金融包容性的推动正在创造前所未有的机遇。创新者现在有独特的机会在金融科技领域留下自己的印记。 以下几个因素使得即将到…

<计算机网络>笔记1: TCP/IP五层协议

<计算机网络>笔记1: TCP/IP五层协议 文章目录 <计算机网络>笔记1: TCP/IP五层协议ref1. 概述名词因特网组成性能指标TCP/IP模型: 实际普及全球的协议 2. 物理层3. 数据链路层点对点信道3.1. 基本问题3.3.2 点对点协议PPP Point-to-Point Protocol3.3.3. 使用广播信…

力扣3272.统计好整数的数目

力扣3272.统计好整数的数目 贪心 枚举所有回文数&#xff0c;再找不重复的排列组合 因为是个回文数&#xff0c;所有只找左半边即可 最终排列组合的个数为上式 class Solution {public:long long countGoodIntegers(int n, int k) {vector<long long> fac(n1);fa…

Nuxt 项目实战 - 15:自定义unocss规则,让编写样式更高效

与UI设计师约定颜色命名规则 配置color变量 color.scss $colors: ((#ffffff,#f8f8f8,#ebebeb,#dbdbdb,#cccccc,#999999,#666666,#333333,#000000),(#daf6ef, #b4ecde, #08c193, #228f73, #43d7b2),(#f62f3b, #edc9c9, #f0e2e2, #ffecea, #f78185),(#f2f5f8, #e3e8eb, #c3cace, …

永恒之蓝漏洞复现记录

准备工作 实验环境搭建 下载并安装VMware Workstation软件查看VMware的虚拟网卡和虚拟网络设置安装Windows虚拟机镜像和Kali linux虚拟机镜像 实验目的 掌握Windows网络服务远程渗透攻击基本理论知识。掌握Windows漏洞及漏洞利用方法原理。掌握Windows网络服务远程渗透攻击…

Spring02——bean基础配置、bean实例化——构造方法/静态工厂/实例工厂与FactoryBean、bean的生命周期

IOC相关内容 通过前面两个案例&#xff0c;我们已经学习了bean如何定义配置&#xff0c;DI如何定义配置以及容器对象如何获取的内容&#xff0c;接下来主要是把这三块内容展开进行详细的讲解。 bean基础配置bean实例化——构造方法bean实例化——静态工厂bean实例化-实例工厂…

笔记整理—内核!启动!—uboot部分(3)uboot启动内核传参

uboot会以tag的方式给内核传递参数&#xff0c;tag是一个数据结构&#xff0c;在uboot中与linux_kernel中都有相同的结构。 kernel接收到的传参由若干个tag构成&#xff0c;从tag_start到tag_end之间的数据构成&#xff0c;读到start时开始传参&#xff0c;end结束传参。 CON…

算法专利复现_基于ngboost和SHAP值可解释预测方法

大家好&#xff0c;我是重庆未来之智的Toby老师&#xff0c;最近看到一篇专利&#xff0c;名称是《基于NGBoost和SHAP值的可解释地震动参数概率密度分布预测方法》。该专利申请工日是2021年3月2日。 专利复现 我看了这专利申请文案后&#xff0c;文章整体布局和文字内容结构不错…