目录
- 开头
- 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_MAX
,但digit-sequence
这个值不能为0
,也不能为负数,因为行号一般是从1
开始逐渐增长的,不可能会出现0
或者负数,所以,这就是digit-sequence
这个值不能为0
,也不能为负数的原因,而filename
字符串则用来修改宏__FILE__
的值,并且文件名你想怎样取就怎样取,不取也是可以的,像\033[33mm\033[0m
或者__LINE__
这样的字符串都是可以的,当然,空字符串也行,总之,任何你想到的字符串都可以放到这里面,当然digit-sequence
和filename
这两个参数都有共同的限制,那就是,这两个参数只能代入字面常量或者某一个宏,要不然就会报错。这就是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
选自C语言中的预处理指令——
#line
的简介 ↩︎