可以的。
五华网站建设公司创新互联,五华网站设计制作,有大型网站制作公司丰富经验。已为五华上千余家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的五华做网站的公司定做!
例如库函数就是把函数放到库里,把一些常用到的函数编译完放到一个文件里,供不同的人进行调用。C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。
windows中静态编译将导出声明和实现都放在lib中。动态LIB文件相当于一个C语言中的h文件,是函数导出部分的声明,而不将实现过程嵌入到程序本身中,编译后只是将函数地址存在宿主程序中,运行到调用函数是调用DLL并载入函数来实现函数的具体操作。
因此,c语言中的函数是可以单独进行编译并导出的。
扩展资料:
单独编译的相关方式及文件:
1、lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。
2、静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。
参考资料来源:百度百科-库函数
参考资料来源:百度百科-lib文件
有函数的都可以单独进行编译,编译是指把程序语句翻译为机器代码,对于C语言就是把.c文件翻译为.obj文件。
此外,必须要有main函数的才可以完成连接为exe文件。
#includestdio.h
#includemath.h
#define PI 3.1415
void sx()/*计算扇形面积及周长*/
{ float r,j,S,C;
do{
printf("请输入半径r=");
scanf("%f",r);
printf("请输入角度(360制)j=");
scanf("%f",j);
}while(r0||j0);
/*运算*/
S=PI*r*r*j/360;
C=2*PI*r*j/360+2*r;
printf("该扇形面积S=%f\n周长C=%f\n",S,C);
}
void wb()/*计算正5边形面积及周长*/
{ float a,S,C;
do{
printf("请输入边长a=");
scanf("%f",a);
}while(a0);
/*运算*/
S=1.72*a*a;
C=5*a;
printf("该正5边形面积S=%f\n周长C=%f\n",S,C);
}
void lb()/*计算正6边形面积及周长*/
{ float a,S,C;
do{
printf("请输入边长a=");
scanf("%f",a);
}while(a0);
/*运算*/
S=2.598*a*a;
C=6*a;
printf("该正6边形面积S=%f\n周长C=%f\n",S,C);
}
void qg()/*计算球冠表面积及体积*/
{ float r,h,S,V;
do{
printf("请输入半径r=");
scanf("%f",r);
printf("请高度h=");
scanf("%f",h);
}while(r0||h0);
/*运算*/
if(h=r)
{
S=2*PI*r*h;
V=PI*(h*h)*(r-h/3);
}
else
{
S=4*PI*r*r-2*PI*r*h;
V=(4/3)*PI*r*r*r-PI*(h*h)*(r-h/3);
}
printf("该球冠面积S=%f\n体积V=%f\n",S,V);
}
void smt()/*计算正4面体的表面积及体积。*/
{ float a,S,V;
do{
printf("请输入边长a=");
scanf("%f",a);
}while(a0);
/*运算*/
S=a*a*sqrt(3);
V=0.11111111*(S/4)*a*sqrt(6);
printf("该正4面体面积S=%f\n体积V=%f\n",S,V);
}
void zy()/*计算正圆面积及周长*/
{ float r,S,C;
do{
printf("请输入半径r=");
scanf("%f",r);
}while(r0);
/*运算*/
S=PI*r*r;
C=2*PI*r;
printf("该正圆面积S=%f\n周长C=%f\n",S,C);
}
void main()
{ int a;
char c;
do{
printf("请选择计算对象(选择数字)\n");
printf("1:扇形 2:正5边形 3:正6边形 4:球冠 5:正4面体 6:正圆\n");
scanf("%d",a);
switch(a)
{
case 1:sx();break;
case 2:wb();break;
case 3:lb();break;
case 4:qg();break;
case 5:smt();break;
case 6:zy();
}
printf("是否继续(y or n)\n");
scanf("%s",c);
}while(c=='y');
}
因为C语言中你编写的函数中用到了基本的比如输出,定义这些,这些都是头文件里面写好的,如果你要单独编译,可以自己把这些东西定义在一个文件中,自己重新写一遍,另外还得编译器支持。
不是
要单独运行一个函数,只需直接调用就可以了。为了验证子函数的正确性,可以先生成一些数据与期望的结果(包括边界条件),测试子函数的输出是否满足期望。
或者你说的是软件工程的东西?有白盒测试和黑盒测试两种,像上面那种就是黑盒测试。白盒测试需要逐句审查语句,有多种方法,书里讲得很明白。