宏 __DATE__,__TIME__, __FILE__, __LINE__的应用
/************************************************************
* 这四个宏 __DATE__,__TIME__, __FILE__, __LINE__
* 记录下来的是当前文件最后一次“构建”的时间,文件名称和行数。
* 以目前的情况__FILE__=test_c_datetime.c __LINE__=13
************************************************************/
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%s\n", __DATE__);
printf("%s\n", __TIME__);
printf("Bug is here:%s on line %d\n", __FILE__, __LINE__);
//在c-free中,会在程序最后自动执行与下面代码效果相同的代码。
//system("pause");
return 0;
}
这个可以用于查看编写的代码是否生效。是否编译进取。
PS:本文的内容多数都来自网络。并不能算是自创。
相关推荐
与__FILE__宏结合使用,__LINE__可以更精确地定位错误。 __DATE__ 宏表示当前源文件的编译日期,被展开为一个以 null 结尾的字符串字面量,其格式为“Mmm dd yyyy”,其中Mmm为月份的缩写,dd为月份中的日,yyyy为...
除了 `__FILE__` 和 `__LINE__`,还有其他预定义宏,如 `__DATE__` 和 `__TIME__`,它们分别表示源文件的创建日期和时间。虽然这些信息在调试时可能不是特别重要,但在某些情况下,如记录日志或追踪代码修改历史时,...
2. **`__LINE__`**:这个宏扩展为一个整数常量表达式,其值是宏在源文件中的行号。这对于跟踪代码的执行流程和调试特别有帮助。 ```c printf("%d\n",__LINE__); ``` 执行结果示例: ``` 13 ``` 3. **`...
printf("Ver:%s %s\n", __DATE__, __TIME__); exit(0); default: usage (argv[0], 1); break; } } /* Signal and others. */ signal_init (); /* Init config. */ config_init(); /* Init the cmd */...
这段代码中,通过使用 `__FILE__`, `__DATE__`, `__TIME__`, `__STDC_VERSION__`, `__LINE__` 和 `__func__` 宏,我们可以轻松地知道程序执行到哪个文件、哪一行以及哪个函数。 #### 二、`#line` 和 `#error` 1. *...
`__LINE__`是当前行号,`__FILE__`是包含该宏的源文件名,`__DATE__`是编译日期,`__TIME__`是编译时间,`__STDC__`表示是否遵循ANSI C标准。 了解并熟练运用这些宏定义可以提高C程序的灵活性、可维护性和效率,是C...
#### __LINE__ - **功能**:此宏扩展为当前行号。 - **应用场景**:当程序出现异常时,可以通过该宏获取到出错的具体行号,方便查找问题所在。 #### __STDC__ - **功能**:定义该宏表示编译器遵循ISO C标准。 - **...
C 语言中收录了一些有用的宏,这些宏是提供当前编译信息的,例如 __LINE__、__FILE__、__DATE__、__TIME__、__STDC__ 等。 宏定义是 C 语言中非常重要的工具,它可以让我们在编译前对代码进行修改和扩展,从而提高...
install((U_CHAR *)"__LINE__", -1, T_SPECLINE, NULL_PTR, -1); // 其他宏的安装代码省略... } ``` 这里`install`函数的作用是安装一个名字到主哈希表中,不管这个名字是否存在。`install`函数原型如下: ```c ...
LINE_COUNT = 358; MEMORY_SIZE = 8745; PROTECT = READ_WRITE; TCD: STACK_SIZE = 0, TASK_PRIORITY = 50, TIME_SLICE = 0, BUSY_LAMP_OFF = 0, ABORT_REQUEST = 0, PAUSE_REQUEST = 0; DEFAULT_GROUP = 1,1,*,*,*...
例如,在错误处理函数中,可以输出`"Error occurred in file: " __FILE__ ", line: " __LINE__`,以帮助定位问题。 ### 日期和时间(__DATE__、__TIME__) 预处理还提供了获取当前日期和时间的能力,这对于日志...
C语言的预处理器还定义了一些标准的宏,如_LINE_、_FILE_、_DATE_、_TIME_和_STDC_。这些宏在编译时自动定义,可以用于日志记录或调试: ```c printf("_FILE_: %s, _LINE_: %d\n", _FILE_, _LINE_); ``` 8. 溢出...
这些宏包括__LINE__、__FILE__、__TIME__、__TIMESTAMP__、__DATE__以及__FUNCTION__等。 __LINE__宏用于输出当前代码行号,当编译器处理到__LINE__时,会将其替换为当前代码的行号。__FILE__宏则会替换为当前代码...
特殊宏 (`__LINE__`, `__FILE__`, `__TIME__`, `__DATE__`, `__TIMESTAMP__`) - **功能**:这些宏提供了关于当前编译状态的信息,如文件名、行号、时间戳等。 - **用途**:在调试代码时非常有用,可以帮助定位问题...
首先,ICC12遵循标准的C86/C89预处理器规范,这意味着它支持一些预定义的宏(Predefined Macros),如`__FILE__`、`__DATE__`、`__TIME__`、`__LINE__`和`__STDC__`。这些宏在编译时会被自动替换为相应的值:`__FILE...
7. **预处理器变量`__LINE__`, `__FILE__`, `__DATE__`, `__TIME__`**:这些特殊的宏在编译时会自动扩展为当前源文件的行号、文件名、日期和时间,用于调试和日志记录。 8. **避免宏替换的副作用**:使用`##`操作符...
sscanf(line, "%f , %s%s%s%s%s", &value, system_time.week, system_time.month, system_time.date, system_time.hour_minute_second, system_time.year); printf("value=%f system_time=%s %s %s %s %s\n", ...
6. **`__LINE__`, `__FILE__`, `__DATE__`, `__TIME__`等预定义宏** 这些宏提供了编译时的信息,如当前行号、文件名、日期和时间,常用于调试和日志记录。 7. **C99标准的`_Pragma`操作符** 它提供了一种在编译时...