在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用C語(yǔ)言實(shí)現(xiàn)函數(shù)模板

學(xué)益得智能硬件 ? 來(lái)源:學(xué)益得智能硬件 ? 2024-11-09 11:38 ? 次閱讀

C語(yǔ)言能不能實(shí)現(xiàn)一個(gè)通用的函數(shù),既能完成整數(shù)的相加,又能完成浮點(diǎn)數(shù)的相加?

放在C語(yǔ)言里面,確實(shí)比較困難。

我們先來(lái)看看C++的解決方案。

#include 


template 
T add(T x, T y)
{
    return x + y;
}


int main()
{
    std::cout << add(1, 2) << std::endl;  //顯式調(diào)用
    std::cout << add(1.1, 2.2) << std::endl;   //隱式調(diào)用


    return 0;
}

C++有個(gè)重要的概念叫做模板,所謂模板,就是通用的意思。

不管是整數(shù)的相加,還是浮點(diǎn)數(shù)的相加,代碼都是一樣的,唯一的區(qū)別就是類型,參數(shù)的類型以及返回值的類型。

那就干脆用一種通用的類型來(lái)代替,這個(gè)類型暫且就叫 T。

這樣的代碼如果直接拿來(lái)編譯,編譯器肯定會(huì)提示 T 這種類型不能識(shí)別,畢竟它不是標(biāo)準(zhǔn)的類型。

所以還需要在上面加一行代碼,專門告訴編譯器,T 是一種類型。

調(diào)用函數(shù)的時(shí)候,可以顯示指定類型,也可以讓編譯器自己去分析,這就是 C++ 中的函數(shù)模板。

單從功能上來(lái)說(shuō),確實(shí)給用戶提供了極大的方便。

再回到C語(yǔ)言上,C語(yǔ)言并沒(méi)有函數(shù)模板的概念,唯一能接近函數(shù)模板的方式,可能就是使用 _Generic 關(guān)鍵字。

#include 


int add_int(int x, int y)
{
    return x + y;
}


double add_double(double x, double y)
{
    return x + y;
}


#define ADD(X, Y) _Generic((X), int : add_int(X, Y),
                                double : add_double(X, Y))
                                
int main()
{
    printf("%d
", ADD(1, 2));
    printf("%lf
", ADD(1.1, 2.2));
    
return 0;
}


?Generic 關(guān)鍵字可以判斷參數(shù) x 的類型,根據(jù)類型去匹配相應(yīng)的函數(shù),如果不看這些代碼,從使用的角度,確實(shí)有點(diǎn)函數(shù)模板的意思。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7622

    瀏覽量

    139066
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4359

    瀏覽量

    63469
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2116

    瀏覽量

    74338

原文標(biāo)題:C語(yǔ)言實(shí)現(xiàn)函數(shù)模板

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    如何用C語(yǔ)言實(shí)現(xiàn)面向?qū)ο缶幊?/a>

    、組合、多態(tài)等面向?qū)ο蟮墓δ?,?b class='flag-5'>C語(yǔ)言有struct和函數(shù)指針。我們可以用struct中的數(shù)據(jù)和函數(shù)指針,以此來(lái)模擬對(duì)象和類的行為。所以在正式開(kāi)始設(shè)計(jì)模式前,先看看如何用
    發(fā)表于 07-12 07:24

    C語(yǔ)言實(shí)現(xiàn)的泛型函數(shù)swap()

    C語(yǔ)言實(shí)現(xiàn)的泛型函數(shù)swap():交換兩個(gè)變量中的數(shù)據(jù).
    發(fā)表于 01-20 07:10

    C語(yǔ)言實(shí)現(xiàn)DES算法

    C語(yǔ)言實(shí)現(xiàn)DES算法 本DES算法,使用了效率很高的C完成。目前,國(guó)內(nèi)知名企業(yè)的POS終端中,單DES算法,均是采用這個(gè)函數(shù)完成。函數(shù)經(jīng)
    發(fā)表于 01-16 10:09 ?3291次閱讀

    DSP算法的c語(yǔ)言實(shí)現(xiàn)

    DSP算法的c語(yǔ)言實(shí)現(xiàn),又需要的朋友下來(lái)看看。
    發(fā)表于 05-09 10:59 ?0次下載

    轉(zhuǎn)載一篇MSP430中斷c語(yǔ)言函數(shù)模板

    轉(zhuǎn)載一篇MSP430中斷c語(yǔ)言函數(shù)模板包括了基本模塊的所有中斷模板,感興趣的小伙伴們可以看看。
    發(fā)表于 07-26 11:11 ?3次下載

    C語(yǔ)言實(shí)現(xiàn)數(shù)字濾波

    C語(yǔ)言實(shí)現(xiàn)數(shù)字濾波 。對(duì)數(shù)值進(jìn)行精度調(diào)整,下面給出幾種常用的數(shù)字濾波方法的C語(yǔ)言函數(shù),這些函數(shù)
    發(fā)表于 07-26 15:44 ?10次下載

    PID控制算法的C語(yǔ)言實(shí)現(xiàn)(完整版)

    PID控制算法的C語(yǔ)言實(shí)現(xiàn)一 PID算法原理
    發(fā)表于 11-05 15:45 ?0次下載

    C++語(yǔ)言實(shí)現(xiàn)火車排序功能

    C++語(yǔ)言實(shí)現(xiàn)火車排序功能
    發(fā)表于 01-05 11:27 ?2次下載

    4個(gè)重要算法C語(yǔ)言實(shí)現(xiàn)源代碼

    4個(gè)重要算法C語(yǔ)言實(shí)現(xiàn)源代碼
    發(fā)表于 06-10 08:00 ?13次下載

    C語(yǔ)言實(shí)用教程之函數(shù)的詳細(xì)資料說(shuō)明

    本文檔詳細(xì)介紹的是C語(yǔ)言實(shí)用教程之函數(shù)的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:1程序設(shè)計(jì)的藝術(shù)性,2函數(shù)的定義與使用,3函數(shù)的作用域和存儲(chǔ)類型,4.預(yù)
    發(fā)表于 02-26 14:43 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言實(shí)</b>用教程之<b class='flag-5'>函數(shù)</b>的詳細(xì)資料說(shuō)明

    使用C語(yǔ)言實(shí)現(xiàn)圖書館管理系統(tǒng)的源代碼和函數(shù)及軟件等資料合集

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用C語(yǔ)言實(shí)現(xiàn)圖書館管理系統(tǒng)的源代碼和函數(shù)及軟件等資料合集
    發(fā)表于 03-03 08:00 ?9次下載
    使用<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b>圖書館管理系統(tǒng)的源代碼和<b class='flag-5'>函數(shù)</b>及軟件等資料合集

    C++之函數(shù)模板的概念及意義

    一、函數(shù)模板的引出:1、c++中有幾種交換變量的方法:(1)定義宏代碼塊(2)定義函數(shù)代碼版本一:#include <iostream>#include <string>using namespace
    的頭像 發(fā)表于 12-24 15:58 ?972次閱讀

    累加校驗(yàn)和C語(yǔ)言實(shí)現(xiàn)

    累加校驗(yàn)和C語(yǔ)言實(shí)現(xiàn)
    發(fā)表于 11-29 18:06 ?10次下載
    累加校驗(yàn)和<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b>

    怎么用C語(yǔ)言實(shí)現(xiàn)多態(tài)

    這里我想主要介紹下在C語(yǔ)言中是如何實(shí)現(xiàn)的面向?qū)ο蟆V懒?b class='flag-5'>C語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮姆绞?,我們?cè)俾?lián)想下,C
    的頭像 發(fā)表于 10-12 09:12 ?2172次閱讀

    使用C語(yǔ)言實(shí)現(xiàn)的CRC計(jì)算單元的例子

    使用C語(yǔ)言實(shí)現(xiàn)的CRC計(jì)算單元的例子
    的頭像 發(fā)表于 05-16 16:16 ?1252次閱讀
    主站蜘蛛池模板: 在线毛片网站 | 国产精品性| 特级做a爰片毛片免费看 | 日本最猛黑人xxxx猛交 | 国产三级在线观看免费 | 手机在线你懂的 | 精品一区 二区三区免费毛片 | 2021成人国产精品 | 男女交性视频免费播放视频 | 欧美色性视频 | 欧美xx网站 | 免费一级特黄特色大片在线 | 国产 麻豆 欧美亚洲综合久久 | 在线免费国产视频 | 欧美另类色 | 日本wwwxx| 直接在线观看的三级网址 | 成人国产三级在线播放 | 欧美成年性色mmm | aaaa级毛片| 国产一区二区三区四卡 | 免费人成网555www | 1000部啪啪未满十八勿入中国 | 四虎永久在线日韩精品观看 | 午夜小视频免费 | 久久久一本波多野结衣 | 国产成人a| 黄色大片网站 | 亚洲成网| 亚洲理论片在线观看 | 中国业余老太性视频 | 日本美女黄色一级片 | 激情综合丝袜美女一区二区 | 欧美丝袜一区 | 日本一区二区在线免费观看 | 天堂网www最新版在线资源 | 国产精品漂亮美女在线观看 | 伊人久久大香线焦在观看 | 欧美一级片网址 | 国内精品久久久久影院免费 | 一个色亚洲|

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品