色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

簡單學(xué)習(xí)一下可變參數(shù)函數(shù)

玩轉(zhuǎn)單片機 ? 來源:玩轉(zhuǎn)單片機 ? 作者:noah ? 2022-11-29 09:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近寫一個項目用到一些自編框架,遇到函數(shù)輸入?yún)?shù)不確定的問題,然后就在想有什么辦法實現(xiàn),下班后靈光閃現(xiàn)想到C語言的某個語法(本人時不時都會看一些博客文章,在需要的時候就會想在哪里見過某些東西),然后就憑記憶嘗試輸入搜索,最后找到了它--可變參數(shù)函數(shù),參數(shù)數(shù)量可變的函數(shù)被稱為可變參數(shù)函數(shù)(variable function)。

在框架的編寫中,都會考慮很多東西,對于不確定的輸入,使用可變參數(shù)函數(shù)也是個不錯的解決方案,下面就來簡單學(xué)習(xí)一下。

#include "stdio.h"
// 引入頭文件
#include "stdarg.h"


// 可變參數(shù)函數(shù), 第一個變量指定后邊有多少個參數(shù)
void user_task_1(int NumofPara, ...)
{
  //用于for循環(huán)
  int i = 0;
  //用于打印變量
  int temp = 0;            


  //新建一個va_list類型的指針
  va_list pointer;


  //初始化指針,指針指向確定
  va_start(pointer, NumofPara);
  
  for( i = 0; i < NumofPara; i++ )
  {
    //用va_arg返回后續(xù)的可變參數(shù), 類型是 int
    temp = va_arg(pointer, int);
    printf("item: %d
", temp);
    //同時,每次va_arg函數(shù)結(jié)束后,va_list指針指向下一位
  }
  //終結(jié)指針,釋放內(nèi)存
  va_end(pointer);
}


int main()
{
  user_task_1(3, 2, 3, 4);
}

更秀一點的操作可以配合回調(diào)函數(shù)使用,靈活調(diào)用需要觸發(fā)的任務(wù):

#include "stdio.h"
// 引入頭文件
#include "stdarg.h"


void user_task(void (*task)(void), int NumofPara, ...)
{
  int i = 0;
  int temp = 0;            


  va_list pointer;


  va_start(pointer, NumofPara);
  
  for( i = 0; i < NumofPara; i++ )
  {
    temp = va_arg(pointer, int);
    printf("item: %d
", temp);
  }
  
  va_end(pointer);


  task();
}


void task(void)
{
  printf("this is my task
");
}


int main()
{
  user_task(task, 3, 2, 3, 4);
}

輸出的結(jié)果如下圖:

1ed38898-6f2a-11ed-8abf-dac502259ad0.png






審核編輯:劉清

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

    關(guān)注

    180

    文章

    7633

    瀏覽量

    141998
  • 回調(diào)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    89

    瀏覽量

    11914

原文標(biāo)題:C語言|可變參數(shù)函數(shù)

文章出處:【微信號:玩轉(zhuǎn)單片機,微信公眾號:玩轉(zhuǎn)單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    可變參數(shù)函數(shù)的實現(xiàn)原理

    ;);printf("%d, %c", i, j);不知道你注意過沒有,printf函數(shù)參數(shù)個數(shù)是可變的,上面的第個例子只有1個參數(shù),第
    發(fā)表于 10-21 22:18

    C語言——可變參數(shù)問題.

    *argv[]);  函數(shù)參數(shù)是argc和argv。   深入想一下,"只能在運行時確定參數(shù)形式",也就是說你沒辦法從聲明中看到所接受的參數(shù)
    發(fā)表于 04-20 15:17

    C語言中可變參數(shù)的定義

    文章目錄文章目的寫代碼的時候經(jīng)常需要通過打印trace來debug代碼,于是就有了自己封裝個TRACE函數(shù)的想法。知識點(1)打印trace的時候每次需要打印的參數(shù)個數(shù)不是
    發(fā)表于 07-14 07:43

    簡單概述一下窗口之間傳遞參數(shù)的機制

    簡單概述一下窗口之間傳遞參數(shù)的機制–“張三去商店買煙”分解動作:誰?–張三去哪?–商店要干嘛?–買煙怎么去?–走路去結(jié)果?–張三得到煙窗口(A):張三信號(signal):想要買煙連接方式
    發(fā)表于 01-18 09:01

    怎么設(shè)計c語言的可變參數(shù)函數(shù)

    怎么設(shè)計c語言的可變參數(shù)函數(shù)
    發(fā)表于 10-27 07:10

    如何才能在51系統(tǒng)使用類似printf這樣的可變參數(shù)的子函數(shù)呢?

    學(xué)習(xí)自己構(gòu)造可變參數(shù)的子函數(shù)使用“...”,做參數(shù)。知道是用堆棧傳遞函數(shù)的,但是在keil中仿真
    發(fā)表于 10-30 08:27

    可變函數(shù)網(wǎng)絡(luò)電路圖

    可變函數(shù)網(wǎng)絡(luò)電路圖
    發(fā)表于 02-17 17:34 ?525次閱讀
    <b class='flag-5'>可變</b><b class='flag-5'>函數(shù)</b>網(wǎng)絡(luò)電路圖

    指針作為函數(shù)參數(shù)

    指針作為函數(shù)參數(shù) 大多數(shù)C程序員開始使用指針時是用它們實現(xiàn)函數(shù)參數(shù),所謂可變參數(shù)。為了理解
    發(fā)表于 07-29 11:49 ?2843次閱讀

    關(guān)于深度學(xué)習(xí)最常用的10大激活函數(shù)詳解

    那就讓我們來整理一下深度學(xué)習(xí)中離不開的激活函數(shù)
    的頭像 發(fā)表于 03-12 17:45 ?3486次閱讀
    關(guān)于深度<b class='flag-5'>學(xué)習(xí)</b>最常用的10大激活<b class='flag-5'>函數(shù)</b>詳解

    分享一下嵌入式 HarmonyOS 的學(xué)習(xí)思路

    在我拿到小熊派鴻蒙開發(fā)板后,首先按照教程,搭建了開發(fā)環(huán)境,體驗了一下程序是如何進行編譯和下載,以及初步了解了一下資料的架構(gòu)。關(guān)于小熊派鴻蒙開發(fā)板的信息,可以戳這里開始學(xué)習(xí) Harmony...
    發(fā)表于 12-22 19:02 ?9次下載
    分享<b class='flag-5'>一下</b>嵌入式 HarmonyOS 的<b class='flag-5'>學(xué)習(xí)</b>思路

    C語言-函數(shù)可變形參(不定形參)

    這篇文章介紹C語言函數(shù)的不定參數(shù)可變參數(shù) 形參,實現(xiàn)printf樣的傳參效果。
    的頭像 發(fā)表于 08-14 09:58 ?3193次閱讀

    簡單一下多點觸控協(xié)議

    前面簡單聊了一下多點觸控協(xié)議,接下來找個驅(qū)動來看看具體實現(xiàn)。目前市面上多點觸控芯片用得比較多的主要是匯頂和敦泰。
    的頭像 發(fā)表于 04-17 09:20 ?3038次閱讀

    學(xué)習(xí)一下ARM的智能功率分配技術(shù)

    今天來學(xué)習(xí)一下ARM的“智能功率分配”(Intelligent Power Allocation)技術(shù),下文中簡稱IPA。
    發(fā)表于 07-14 14:18 ?1515次閱讀
    <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>一下</b>ARM的智能功率分配技術(shù)

    如何實現(xiàn)個自己的printf函數(shù)代碼?

    在C語言中,可變參數(shù)函數(shù)可變參數(shù)宏都允許函數(shù)或宏接受不定數(shù)量的
    發(fā)表于 09-06 14:20 ?1427次閱讀
    如何實現(xiàn)<b class='flag-5'>一</b>個自己的printf<b class='flag-5'>函數(shù)</b>代碼?

    python函數(shù)的萬能參數(shù)

    我們通過簡單的事例來展示一下函數(shù)的萬能參數(shù),我們先寫個最
    的頭像 發(fā)表于 07-17 14:56 ?641次閱讀
    python<b class='flag-5'>函數(shù)</b>的萬能<b class='flag-5'>參數(shù)</b>
    主站蜘蛛池模板: 日韩丰满少妇无码内射 | 天天躁人人躁人人躁狂躁 | 亚洲视频中文字幕在线观看 | 中文字幕无码他人妻味 | 秋霞电影网午夜免费鲁丝片 | 日本护士hd | 亚洲欧美成人在线 | 国产精品一区二区四区 | 激情综合色 | 小玲被公扒开腿 | rio 快播 | 国产成人综合在线观看 | 免费看黄的片多多APP下载 | 成人国产精品视频频 | 在线观看中文字幕码2021不用下载 | 女人高潮了拔出来了她什么感觉 | 动漫AV纯肉无码AV电影网 | 一边捏奶头一边啪高潮会怎么样 | 国产精品自在在线午夜精品 | 2020亚洲国产在线播放在线 | 最近中文字幕在线中文高清版 | 日韩在线视频www色 日韩在线看片中文字幕不卡 | 一本色道久久88综合日韩精品 | 上课失禁丨vk | 亚洲国产综合久久久无码色伦 | 窝窝影院午夜看片毛片 | jzz大全18| 国产精品外围在线观看 | 果冻传媒剧情在线观看 | 37大但人文艺术A级都市天气 | 果冻传媒我的女老板 | 手机毛片免费看 | 午夜理伦片免费 | 阴茎插入阴道 | 伊人久久伊人 | 国产精品成人不卡在线观看 | 国产日韩欧美另类 | 成人在线视频网站 | 公么我好爽再深一点 | 黄色三级三级三级免费看 | 有码在线播放 |

    電子發(fā)燒友

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

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