C标准中指定了一些预定义的宏,对于编程经常会用到。下面这个表中就是一些常常用到的预定义宏。
宏(双下滑线) 意义
__DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字)
__FILE__ 代表当前源代码文件名的字符串文字
__LINE__ 代表当前源代码中的行号的整数常量
__TIME__ 源文件编译时间,格式微“hh:mm:ss”
__func__ 当前所在函数名
对于__FILE__,__LINE__,__func__这样的宏,在调试程序时是很有用的,因为你可以很容易的知道程序运行到了哪个文件的那一行,是哪个函数。
下面一个例子是打印上面这些预定义的宏的。
#include <stdio.h>
#include <stdlib.h>
void why_me();
int main()
{
printf( "The file is %s.\n", __FILE__ );
printf( "The date is %s.\n", __DATE__ );
printf( "The time is %s.\n", __TIME__ );
printf( "This is line %d.\n", __LINE__ );
printf( "This function is %s.\n", __func__ );
why_me();
return 0;
}
void why_me()
{
printf( "This function is %s\n", __func__ );
printf( "The file is %s.\n", __FILE__ );
printf( "This is line %d.\n", __LINE__ );
}
相关文章
- 02-06C++中宏的定义与用法(现已被内联函数所代替)
- 02-06C标准中一些预定义的宏
- 02-06[C++] C++标准中定义的实体(entity)/ 声明 / 定义
- 02-06C++宏定义中"#"与"##"的妙用
- 02-06C标准中一些预定义的宏
- 02-06c语言中数组的定义和java中数组定义的一些区别
- 02-06关于标准C语言的预定义宏【转】
- 02-06visual c++中预定义的宏
- 02-06为什么一定要调用 setlocale 呢? 因为在 C/C++ 语言标准中定义了其运行时的字符集环境为 "C" ,也就是 ASCII 字符集的一个子集。使用setlocal改变整个应用程序的字符集编码方式(wcstombs使用前要设置 setlocale (LC_ALL, "chs"); )
- 02-06c/c++中宏定义##连接符 和#符的使用