chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

簡單學習一下可變參數(shù)函數(shù)

玩轉單片機 ? 來源:玩轉單片機 ? 作者: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ù)也是個不錯的解決方案,下面就來簡單學習一下。

#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ù)結束后,va_list指針指向下一位
  }
  //終結指針,釋放內(nèi)存
  va_end(pointer);
}


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

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

#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);
}

輸出的結果如下圖:

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






審核編輯:劉清

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

    關注

    183

    文章

    7646

    瀏覽量

    146099
  • 回調函數(shù)

    關注

    0

    文章

    95

    瀏覽量

    12236

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    可變參數(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ù)的機制–“張三去商店買煙”分解動作:誰?–張三去哪?–商店要干嘛?–買煙怎么去?–走路去結果?–張三得到煙窗口(A):張三信號(signal):想要買煙連接方式
    發(fā)表于 01-18 09:01

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

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

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

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

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

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

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

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

    關于深度學習最常用的10大激活函數(shù)詳解

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

    分享一下嵌入式 HarmonyOS 的學習思路

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

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

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

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

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

    學習一下ARM的智能功率分配技術

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

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

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

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

    我們通過簡單的事例來展示一下函數(shù)的萬能參數(shù),我們先寫個最
    的頭像 發(fā)表于 07-17 14:56 ?1079次閱讀
    python<b class='flag-5'>函數(shù)</b>的萬能<b class='flag-5'>參數(shù)</b>