// 變量加上weak時(shí),是弱符號(hào)。函數(shù)加上weak時(shí),是弱引用,可以不實(shí)現(xiàn)。

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元西安做網(wǎng)站,已為上家服務(wù),為西安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
// 給函數(shù)加上weak屬性時(shí),即使函數(shù)沒定義,函數(shù)被調(diào)用也可以編譯成功。
//當(dāng)有兩個(gè)函數(shù)同名時(shí),則使用強(qiáng)符號(hào)(也叫全局符號(hào),即沒有加weak的函數(shù))來代替弱符號(hào)(加weak的函數(shù))。
int func() __weak;
int main()
{
func();
}
這個(gè)問題是一個(gè)好問題,我之前也沒思索過或者嘗試過,
首先我們弄清楚一件事,函數(shù)聲明可以放在任何頭文件,實(shí)現(xiàn)可以放在任何實(shí)現(xiàn)該函數(shù)的源文件中,那么就存在一個(gè)問題:
編譯時(shí),到底優(yōu)先去使用哪一個(gè),為什么沒有把標(biāo)準(zhǔn)庫中的函數(shù)擴(kuò)展過來;在windows下標(biāo)準(zhǔn)庫被編譯成了msvcr120.dll(msvcr100.dll,這里指release版),所以并不是擴(kuò)展到代碼中,而是在調(diào)用時(shí)動(dòng)態(tài)鏈接;
而題主在其中自定義文件中實(shí)現(xiàn)了該函數(shù),所以編譯時(shí)找到了該函數(shù)的實(shí)現(xiàn),并不會(huì)去鏈接dll(這應(yīng)該是編譯器做的一些工作,確定系統(tǒng)的dll需要加載哪些),所以題主的程序執(zhí)行時(shí)就只有一份fputc了,并不沖突。
題主可以通過快捷鍵跳轉(zhuǎn)聲明就知道了,VS下,點(diǎn)選fputc實(shí)現(xiàn)函數(shù)按F12跳轉(zhuǎn)到聲明,指向的是stdio.h,再按一次跳轉(zhuǎn)到你自己的定義了。Qt的話使用F2。
大概就是這樣子了,可追問。
常用詞匯:
1、short:修飾int,短整型數(shù)據(jù),可省略被修飾的int。
2、long:修飾int,長(zhǎng)整型數(shù)據(jù),可省略被修飾的int。
3、long long:修飾int,超長(zhǎng)整型數(shù)據(jù),可省略被修飾的int。
4、signed:修飾整型數(shù)據(jù),有符號(hào)數(shù)據(jù)類型。
5、unsigned:修飾整型數(shù)據(jù),無符號(hào)數(shù)據(jù)類型。
6、restrict:用于限定和約束指針,并表明指針是訪問一個(gè)數(shù)據(jù)對(duì)象的唯一且初始的方式。
7、return:用在函數(shù)體中,返回特定值(如果是void類型,則不返回函數(shù)值)。
8、continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán)。
9、break:跳出當(dāng)前循環(huán)或switch結(jié)構(gòu)。
10、goto:無條件跳轉(zhuǎn)語句。
11、if:條件語句,后面不需要放分號(hào)。
12、else:條件語句否定分支(與if連用)。
13、switch:開關(guān)語句(多重分支語句)。
14、case:開關(guān)語句中的分支標(biāo)記,與switch連用。
15、default:開關(guān)語句中的“其他”分支,可選。
常用函數(shù):
1、int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z'),返回非0值,否則返回0。
2、int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數(shù)字('0'-'9'),返回非0值,否則返回0。
3、int abs(int i) 返回整型參數(shù)i的絕對(duì)值。
4、double cabs(struct complex znum) 返回復(fù)數(shù)znum的絕對(duì)值。
5、double fabs(double x) 返回雙精度參數(shù)x的絕對(duì)值。
6、long labs(long n) 返回長(zhǎng)整型參數(shù)n的絕對(duì)值。
參考資料來源:百度百科—C語言
網(wǎng)站名稱:c語言weak函數(shù) c語言 weak
文章出自:http://chinadenli.net/article2/hipsoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、ChatGPT、外貿(mào)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)