日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗

發(fā)布時(shí)間:2024/1/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

(文章來(lái)源:嵌入式時(shí)代)

使用C++開(kāi)發(fā)過(guò)程序時(shí),定義函數(shù)可以指定默認(rèn)參數(shù),例如 void fun(int x, int y=3); 在調(diào)用 fun() 時(shí)第二個(gè)參數(shù)可以不傳遞,此時(shí) fun() 函數(shù)默認(rèn)第二個(gè)參數(shù)等于 3,例如 f(1) 就相當(dāng)于 f(1,3)。這是一個(gè)很好用的特性,那么在C語(yǔ)言程序開(kāi)發(fā)中,是否也可以定義帶“默認(rèn)參數(shù)”的函數(shù)呢?

首先應(yīng)該清楚,目前C語(yǔ)言還沒(méi)有原生支持帶默認(rèn)參數(shù)的函數(shù),也就是說(shuō)下面這樣的C語(yǔ)言代碼是非法的:void fun(int x, int y =3){return x+y;}fun(1); // 不等價(jià)于 fun(1, 3)。

但是,C語(yǔ)言作為一門(mén)極其靈活的編程語(yǔ)言,又的確可以借助其他基本語(yǔ)法實(shí)現(xiàn)這樣的需求。不過(guò)要在C語(yǔ)言中定義帶“默認(rèn)參數(shù)”的函數(shù)可能略微有些繁瑣,當(dāng)然了,方法可能不止一種,本文不打算從枯燥的理論層面討論這些方法,而是給出一個(gè)實(shí)例,希望能夠起到拋磚引玉的作用。

假設(shè)我們希望在某段C語(yǔ)言程序中定義一個(gè)帶默認(rèn)參數(shù)的函數(shù),它可以接收兩個(gè)參數(shù),并將之打印出來(lái):double f(int i, double x){printf("i=%d, x=%0.2f\n", i, x);return x;}。現(xiàn)在期望調(diào)用 f 時(shí),如果不顯式指定參數(shù),f 的兩個(gè)默認(rèn)參數(shù)為 (i=8, x=3.14),例如:f(); // 輸出 i=3, x=3.14f(1); // 輸出 i=1, x=3.14f(2, 6.28); // 輸出 i=2,x=6.28。

C語(yǔ)言自然沒(méi)有支持這種需求的原生語(yǔ)法,但是為了實(shí)現(xiàn)這樣的目的,可以定義下面這個(gè)結(jié)構(gòu)體,請(qǐng)看相關(guān)C語(yǔ)言代碼:typedef struct {i;double x;?f_args。接著,定義 f_base() 函數(shù),它的C語(yǔ)言代碼實(shí)現(xiàn)和 f() 是一樣的,目的是讓 f_base() 函數(shù)具有期望的 f() 函數(shù)功能。

顯然,從上述C語(yǔ)言代碼來(lái)看,var_f() 函數(shù)實(shí)現(xiàn)了默認(rèn)參數(shù)的功能。現(xiàn)在再定義一個(gè)帶可變參數(shù)的宏,這樣一來(lái),調(diào)用者就不必知道結(jié)構(gòu)體 f_args 的結(jié)構(gòu)了:#define f(...) var_f((f_args){__VA_ARGS__})。上述C語(yǔ)言代碼在 main() 函數(shù)中調(diào)用 f() 函數(shù),并分別傳遞了不同的參數(shù),編譯并執(zhí)行之,得到如下結(jié)果:# gcc t.c# ./a.outi=3, x=8.00i=1, x=2.30i=2, x=3.14i=8, x=9.20。

可見(jiàn),C語(yǔ)言是一門(mén)極其簡(jiǎn)潔靈活的編程語(yǔ)言,其他編程語(yǔ)言中一些好用的特性,可能C語(yǔ)言沒(méi)有原生語(yǔ)法支持,但是我們卻可以組合其他基本語(yǔ)法,自己實(shí)現(xiàn)這些好用的特性。不過(guò)應(yīng)該注意,有件事是行不通的——f(0),因?yàn)樯鲜鰧?shí)現(xiàn)我們無(wú)法在 var_f() 中區(qū)分 “0”究竟是調(diào)用者傳遞的,還是默認(rèn)值,不過(guò)我相信聰明的讀者應(yīng)該能夠想到解決這樣的問(wèn)題的方法。

總結(jié)

以上是生活随笔為你收集整理的c语言带默认参数吗,嵌入式C语言可以带“默认参数”的函数吗的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 涩天堂| 91黄色大片| 日本午夜影院 | a级片一级片 | 国产日韩大片 | 在线免费观看日本 | 国产精品久久久久久精 | 天堂网一区二区三区 | 69xxx少妇按摩视频 | 无法忍受在线观看 | 成年人看的黄色片 | 国产午夜久久久 | 久久成人国产精品入口 | 狠狠躁日日躁夜夜躁2022麻豆 | 91久久久久国产一区二区 | 免费精品一区 | 久久久亚洲一区二区三区 | 亚洲色图综合网 | 国产亚洲综合精品 | 天堂一级片 | 国语对白一区 | 性爱视频日本 | 日韩视频免费播放 | 91久久精品一区二区别 | 少女忠诚电影高清免费 | 国产69av| 日韩色在线 | 理论片琪琪午夜电影 | 一级片在线播放 | 亚洲精品无码不卡在线播he | 毛片a片免费看 | 超级变态重口av番号 | 国产探花一区二区三区 | 最新日韩中文字幕 | 国产情侣酒店自拍 | 亚洲电影在线看 | 性囗交免费视频观看 | 抱着老师的嫩臀猛然挺进视频 | 日日日夜夜操 | av一区三区 | 91 高清 在线 制服 偷拍 | 美女在线一区 | 色视频一区二区 | 手机福利在线 | 精品福利在线视频 | 在线免费你懂的 | 妖精视频污 | 亚洲爱情岛论坛永久 | 久久精品国产欧美亚洲人人爽 | 欧美激情天堂 | 天天色宗合| 乳揉みま痴汉4在线播放 | 樱花影院最新免费观看攻略 | 污视频网址 | 久久女同互慰一区二区三区 | 欧美国产片| 在线的av| 亚洲视频一区在线播放 | 超碰超碰在线 | 又色又爽又黄无遮挡的免费视频 | 男人天堂av网| 91成人午夜| 久久久久亚洲av无码专区喷水 | 国产免费黄色小视频 | 红色假期黑色婚礼2 | 亚洲性猛交富婆 | 樱空桃在线| 一品毛片 | 亚洲一区二三区 | 日本xxxxwwwww| 久久超碰精品 | 深夜影院深a | 久热这里只有精品6 | 国产精品久久久免费 | 欧美精品一区二区三 | 午夜影视体验区 | 国产综合在线观看 | 河北彩花中文字幕 | 欧美男人又粗又长又大 | 国产涩涩 | 亚洲欧美日韩成人在线 | 久久国产精品久久精品国产 | 日本视频网址 | 亚洲色图首页 | 欧美伦理一区二区三区 | 欧美黑人又粗又大又爽免费 | 国产高清视频在线播放 | 99久久99九九99九九九 | 日韩七区| 97人妻天天摸天天爽天天 | 国产成人精品免高潮费视频 | 欧美福利社| 18禁免费观看网站 | 精品一级少妇久久久久久久 | 超黄av| 精彩毛片| 午夜网 | 丁香花电影免费播放电影 | 久久免费偷拍视频 |