重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
printf 在动态链接库里。
成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元桃山做网站,已为上家服务,为桃山各地企业和个人服务,联系电话:13518219792
你若要模仿printf 则要学建 动态链接库,产生出 .lib 和 .dll,有点麻烦
( gcc 是 不是 叫 .a 还是什么?)。
简单办法是 直接链接 .obj
对于 hello.c, 只编译,不链接。 产生 .obj (或 .o): gcc hello.c -c ( -c 或 /c ?)
main.c 里,m.h 在当前文件夹,(或某文件夹),不用 尖括号(尖括号表示系统的INCLUDE):
#include "m.h"
main()
{hello();}
gcc main.c hello.o
给别人用时,只要给 hello.obj 和 头文件, 不需要源程序。
int
add(int
x,int
y);
int
sub(int
x,int
y);
int
mul(int
x,int
y);
int
div(int
x,int
y);
#include
math.h
#include
stdio.h
void
main()
{
int
a,b,c,d,e,f,g,h,i;
printf("XXXXXXXXXXXXXXX计算器");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
printf("请输入一个整数");
printf("\n");
scanf("%d",a);
printf("\n");
for(c=1;c=30;c++)
printf("-");
printf("\n");
printf("请选择您要做的运算:1.+,2.-,3.*,4./5.abs,6.sqrt");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
scanf("%d",d);
printf("\n");
if(d==5)
{printf("%d",abs(a));goto
end;}(如果想做绝对值,就直接做abs函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
if(d==6)
{printf("%.2f",sqrt(a));goto
end;};}(如果想做开平方,就直接做sqrt函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
printf("请再次输入一个整数");
(如果是做双目的就开始输入第二个数b)
printf("\n");
scanf("%d",b);
printf("\n");
switch(d)
{
case
1:add(a,b);break;
case
2:sub(a,b);break;
case
3:mul(a,b);break;
case
4:div(a,b);break;
default:printf("date
input
error!\n");
}
end:
printf("\n");}
int
add(int
x,int
y)
{
int
m;
m=x+y;
printf("%d",m);
return
m;
}
int
sub(int
x,int
y)
{
int
m;
m=x-y;
printf("%d",m);
return
m;
}
int
mul(int
x,int
y)
{
int
m;
m=x*y;
printf("%d",m);
return
m;
}
int
div(int
x,int
y)
{
int
m;
m=x/y;
printf("%d",m);
return
m;
}
(你试试看吧!应该可以!呵呵)
C语言源程序变成可执行程序需要经过编译和链接两个步骤。
编译就是把源代码翻译成目标代码。而编译是以源文件为单位的,如果一个源文件中的函数调用了另一个源文件中定义的函数,则需要进行链接才能生成最后的可执行二进制程序。库函数是一些别人已经写好的函数,比如printf,malloc等,这些库函数的调用也是需要链接到最后的可执行程序中的,这个把库函数的二进制代码链接到可执行程序的过程就是你说的第3步.当然,现在的操作系统还提供运行时的动态链接。