文章目录
🍎 预定义符号
形如:
__FILE__ //进行编译的源文件
__LINE__ //文件当前的行号
__DATE__ //文件被编译的日期
__TIME__ //文件被编译的时间
__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义
这些都叫做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__);//当前代码所在函数
return 0;
}
打印结果:
那么这些预定义符号有什么用呢?其实我们在以后编写代码的时候,可能遇到的代码很长,而且会出现一些问题,为了保证我们能及时发现问题在哪里,我们可以使用这些预定义符号来在运行时打印出我们的运行日志输出到日志文件里,这样,当代码出现了问题,我们可以根据日志信息来查找出问题的地方。
🍎 #define
#define 是我们的老朋友了,今天让我们对他一探究竟。
🍧 #define定义标识符
//语法:
#define name stuff
它的意思就是:将stuff这个东西取了个新名字name,以后可以直接使用name来替换stuff。这个stuff可以是一个常量、关键字、一段代码等内容。
举个🌰:
#define MAX 1000
#define reg register //为 register这个关键字,创建一个简短的名字
#define do_forever for(;;) //用更形象的符号来替换一种实现
#define CASE break;case //在写case语句的时候自动把 break写上。
// 如果定义的 stuff过长,可以分成几行写,除了最后一行外,每行的后面都加一个反斜杠(续行符)。
#define DEBUG_PRINT printf("file:%s\tline:%d\t \
date:%s\ttime:%s\n" ,\
__FILE__,__LINE__ ,