C语言 extern学习1
没有头文件时,通过本文件内的函数声明来确定定义域,实现功能:
//单文件测试 #include <stdio.h> /* 经测试,C语言环境下子函数默认是void型;所以可省略不写 为严谨起见,加上void */ void printStr(); //函数定义域:从声明点延伸到源程序文本结束 void main() { printStr(); } void printStr() { printf("Hello world!\n"); }
多文件测试:
第一种方案:
main.c 子函数定义
head.h 子函数的声明,该种方法类似单文件测试,目的是将定义域提到最前面 优点是:不必添加子函数中用到的库函数相应的库文件
代码:
head.h
void printStr(); //函数定义域:从声明点延伸到源程序文本结束
main.c
//多文件测试 #include "head.h" #include <stdio.h> /* 经测试,C语言环境下子函数默认是void型;所以可省略不写 为严谨起见,加上void */ void main() { printStr(); } void printStr() { printf("Hello world!\n"); }
第二种方案:
head.h 子函数定义
main.c 直接引用头文件,无须声明,缺点是:子函数中用到的库函数必须添加相应的库文件
代码:
head.h
#include <stdio.h> void printStr() { printf("Hello world!\n"); }
main.c
//多文件测试 #include "head.h" #include <stdio.h> /* 经测试,C语言环境下子函数默认是void型;所以可省略不写 为严谨起见,加上void */ void main() { printStr(); }