我给你举个简单的例子,实际里面会复杂的多。
加入你的my.h是这样的:
程序代码:#ifndef _MY_H_
#define _MY_H_
// some code here
#define _STDIO_H_
#endif
然后在你的my.c中这样写:
程序代码:#include "my.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello, World.\n");
return 0;
}
这个时候编译器会给一个警告:
my.c: In function `main':
my.c:6: warning: implicit declaration of function `printf'
printf成了隐式定义的了。至于为什么变成隐式的,这里没必要说清楚。你只需知道一点:my.h里面的#define _STDIO_H已经影响了包含的<stdio.h>. 如果你这样包含头文件就不会有警告:
程序代码:#include <stdio.h>
#include "my.h"