预处理详解(一)---预定义符号

文章目录

预定义符号

在C语言中,有一些有意思的预定义符号,这些预定义符号都是语言内置的,即以及定义好的,我们可以直接使用。预定义符号主要有以下几个:

c 复制代码
__FILE__        //进行编译的源文件
__LINE__        //文件当前的行号
__DATE__        //文件被编译的日期
__TIME__        //文件被编译的时间
__FUNCTION__    //进行编译的函数
__STDC__        //如果编译器遵循ANSI C,其值为1,否则未定义

这些预定义符号是已经用#define定义好的,在代码运行后的预处理阶段会被替换为相应的内容。

预定义符号的使用

这些预定义符号的使用方法一致,只是需要注意打印的格式是%s还是%d就行了。

例如,运行以下代码:

c 复制代码
#include <stdio.h>
int main()
{
	printf("%s\n", __FILE__);
	printf("%d\n", __LINE__);
	printf("%s\n", __DATE__);
	printf("%s\n", __TIME__);
	printf("%s\n", __FUNCTION__);
	//printf("%d\n", __STDC__);
	//因为VS2013不遵循ANSI C,该符号未定义,所以进行了注释
	return 0;
}

运行结果为:

相关推荐
m0_748229991 小时前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习
你怎么知道我是队长2 小时前
C语言---排序算法4---希尔排序法
c语言·算法·排序算法
m0_748229992 小时前
C与C#:编程语言的核心差异解析
c语言·开发语言·c#
进击的小头2 小时前
一阶IIR低通滤波器:从原理到嵌入式实战
c语言·算法
wotaifuzao2 小时前
STM32+FreeRTOS 长期可维护架构设计(事件驱动篇)-- 告别“屎山”代码
c语言·stm32·嵌入式硬件·freertos·状态机·事件驱动·嵌入式架构
m0_748229993 小时前
Laravel7.x核心特性全解析
c语言·数据库·c#
kklovecode3 小时前
C++对C语言的增强
c语言·开发语言·c++
m0_748248653 小时前
C语言向C++过渡
c语言·c++·算法
leaves falling4 小时前
c语言-函数讲解
c语言·开发语言
秋深枫叶红4 小时前
嵌入式C语言阶段复习——循环语句和分支语句
c语言·开发语言