头文件引用中<>和“ ”的区别
#include<head.h>,尖括号<xxx.h>:表明这个文件xxx.h是一个构成或标准头文件。查找过程会首先检查预定义的目录,可以通过设置搜索路径环境变量或命令行选项来修改这个目录。
#include"head.h",一对引号"xxx.":表明文件xxx.h是用户自己提供的头文件,查找该文件时将从当前文件目录中寻找文件,然后再标准位置寻找文件。
atexit()函数的使用
当运行的程序运行完毕需要退出的时候,需要有一种与程序退出方式无关的方法来进行程序退出时的必要处理(即,不管你是怎么退出的,正常退出的,非正常退出的,是运行完了自己退得的,还是遇到问题中间宕掉了,我都可以将资源释放出来)。
而这也就是atexit函数要解决的问题。
atexit()函数的运行机制是用来注册程序正常终止时要被调用的函数。并且,在一个程序中,最多可以用atexit()注册32个处理函数,这些处理函数的调用顺序与其注册的顺序相反,即最先注册的最后调用。被注册的函数,在main函数运行完后,依次被调用,并且调用顺序和,注册顺序相反。
代码如下:
#include <stdio.h>
#include <stdlib.h> //atexit()函数在这个库里面
void fn1(void);
void fn2(void);
int main(void)
{
int x = 6;
atexit(fn1);
atexit(fn2);
printf("main eixt...\n");
system("pause");
return 0;
}
void fn1()
{
printf("所调用的第一个函数\n");
}
void fn2()
{
printf("所调用的第二个函数\n");
}
(vs编译器中调试了一下,没调试出来)