十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
printf 在動(dòng)態(tài)鏈接庫里。
成都創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元桃山做網(wǎng)站,已為上家服務(wù),為桃山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
你若要模仿printf 則要學(xué)建 動(dòng)態(tài)鏈接庫,產(chǎn)生出 .lib 和 .dll,有點(diǎn)麻煩
( gcc 是 不是 叫 .a 還是什么?)。
簡單辦法是 直接鏈接 .obj
對(duì)于 hello.c, 只編譯,不鏈接。 產(chǎn)生 .obj (或 .o): gcc hello.c -c ( -c 或 /c ?)
main.c 里,m.h 在當(dāng)前文件夾,(或某文件夾),不用 尖括號(hào)(尖括號(hào)表示系統(tǒng)的INCLUDE):
#include "m.h"
main()
{hello();}
gcc main.c hello.o
給別人用時(shí),只要給 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計(jì)算器");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
printf("請(qǐng)輸入一個(gè)整數(shù)");
printf("\n");
scanf("%d",a);
printf("\n");
for(c=1;c=30;c++)
printf("-");
printf("\n");
printf("請(qǐng)選擇您要做的運(yùn)算: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;}(如果想做絕對(duì)值,就直接做abs函數(shù)(它是個(gè)庫函數(shù)).做完后就goto"end"--也就是函數(shù)的最后.)
if(d==6)
{printf("%.2f",sqrt(a));goto
end;};}(如果想做開平方,就直接做sqrt函數(shù)(它是個(gè)庫函數(shù)).做完后就goto"end"--也就是函數(shù)的最后.)
printf("請(qǐng)?jiān)俅屋斎胍粋€(gè)整數(shù)");
(如果是做雙目的就開始輸入第二個(gè)數(shù)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;
}
(你試試看吧!應(yīng)該可以!呵呵)
C語言源程序變成可執(zhí)行程序需要經(jīng)過編譯和鏈接兩個(gè)步驟。
編譯就是把源代碼翻譯成目標(biāo)代碼。而編譯是以源文件為單位的,如果一個(gè)源文件中的函數(shù)調(diào)用了另一個(gè)源文件中定義的函數(shù),則需要進(jìn)行鏈接才能生成最后的可執(zhí)行二進(jìn)制程序。庫函數(shù)是一些別人已經(jīng)寫好的函數(shù),比如printf,malloc等,這些庫函數(shù)的調(diào)用也是需要鏈接到最后的可執(zhí)行程序中的,這個(gè)把庫函數(shù)的二進(jìn)制代碼鏈接到可執(zhí)行程序的過程就是你說的第3步.當(dāng)然,現(xiàn)在的操作系統(tǒng)還提供運(yùn)行時(shí)的動(dòng)態(tài)鏈接。