第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

gcc 不能直接鏈接呀!

max.h :

int?max(int?a,int?b);

main.c:

#include?<stdio.h>
//#include"max.h"
int?main()
{???int?a?=?21;????
????int?b?=12;????
????int?num?=?max(a,b);????
????printf("max?value?=?%d\n",num);
}

已經(jīng)生產(chǎn)了 max.o 并編譯

gcc?max.o?main.c?-o?main

warning:? ?implicit declaration of function ‘max’

不能直接干呀。

但是提示完后,成功編譯出 “main” 程序。


正在回答

1 回答

已經(jīng)解決:
當(dāng)主體文件 沒有聲明時(shí)(即沒有包含的頭文件)就會(huì)報(bào)錯(cuò);對(duì)其的一些**猜測**:

?#include?<stdio.h>

//#include"max.h"

int?main()
{???int?a?=?21;????
????int?b?=12;????
????int?num?=?max(a,b);????
????printf("max?value?=?%d\n",num);
}

max.h ↓

int?max(int?a,int?b);

max.c ↓

int?max(int?a,int?b)
{????if(a>b){
?????????return?a;
?????}else{
?????????return?b;????
?????}
}

沒有包含頭文件,也就是沒有聲明函數(shù),但之前進(jìn)行 了??compile and?assemble. 生成 max.o 文件

gcc?max.c?-c?-o?max.o

于是

gcc?max.o?max.c?-o?outfile
gcc?main.c?max.o?-o?out

警告提示:warning: implicit declaration of function ‘max’
但成功生成 文件 out
以上是沒有 定義 函數(shù)。

如果導(dǎo)入 頭文件 (定義了 max 函數(shù)),或著直接在 main 中定義max函數(shù),再和 *.o 文件 鏈接編譯,

gcc?main.c?max.o?-o?out

就不會(huì)出現(xiàn) 警告和錯(cuò)誤。


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Vseelove 提問者

也就是說在 *.c(待編譯文件)里的函數(shù) 在 *.o 里就可以了,只不過沒有**聲明** 就會(huì)警告。
2020-03-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Vseelove 提問者

有個(gè)詞錯(cuò)了,頭文件 是聲明,不是定義。
2020-03-26 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

gcc 不能直接鏈接呀!

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)