- 如何获取文件的额的当前信息
// 案例1:
#include <stdio.h>
int main
{
printf("当前文件名:%s\",__FILE__);//输出当前程序文件名
printf("当前行号:%s\n",__LINE__);//输出源文件的当前行号
return 0;
}
备注:
1.__FILE__ 包含当前程序文件名的字符串;
2.__LINE__ 表示当前行号的整数;
3.__DATE__ 包含当前日期的字符串;
4.__STDC__ 如果编译器遵循ANSI C标准,它就是个非零值;
5.__TIME__ 包含当前时间的字符串;
5.__FUNCTION__当前函数。
- 如何判断一段程序是由C编译程序还是由C++编译程序编译的?
1.c++编译时定义了 __cplusplus
2.c编译时定义了 STDC
- main主函数执行完毕后,是否可能会再执行一段代码,给出说明?
crt会执行另一些代码,进行处理工作。
如果你需要加入一段在main退出后执行的代码,可以使用atexit()函数,注册一个函数。
#include <stdlib.h>
int atexit(void (*function”)(void));
#include <stdlib.h>
#include <stdio.h>
void fn1( void );
void fn2(void);
int main(void)
{
atexit(fn1);
atexit(fn2)
printf( “This is executed first.\n” );
}
atexit函数的说明:
函数名: atexit
头文件:#include<stdlib.h>
功 能: 注册终止函数(即main执行结束后调用的函数)
用 法: int atexit(void (*func)(void));
注意:按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用。atexit()注册的函数类型应为不接受任何参数的void函数,exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。