variadic-functions

    0熱度

    1回答

    我一直在尋找一種方式來的參數數目不定傳遞給一個函數,當我遇到做到這一點使用va_list,va_start和STDARG.H的va_end的方式來如給出的程序here所示。 但是無法找到任何方式來訪問傳遞給函數的無限個參數的隨機方式。 使用stdarg.h頭文件中的va_list的方式是按順序訪問參數。一旦讀完了一個論點,就不會有回頭。 有沒有辦法隨機訪問這些參數? 編輯:我被建議發佈代碼而不是包

    1熱度

    2回答

    可變參數函數如何處理數值常量?例如考慮下面的代碼: myfunc(5, 0, 1, 2, 3, 4); 功能看起來是這樣的:現在 void myfunc(int count, ...) { } ,爲了遍歷一個論點va_arg,我需要知道它們的大小,例如int,short,char,float等等。但是,我應該假定數字常量的大小,就像我在上面的代碼中使用的那樣? 試驗表明,剛剛假設int

    2熱度

    1回答

    根據傳遞給可變參數功能this answer數字常量,如果他們以一個總是被視爲int。這讓我想知道爲什麼下面的代碼同時適用於int和long long。考慮下面的函數調用: testfunc(4, 1000, 1001, 1002, 1003); testfunc看起來是這樣的: void testfunc(int n, ...) { int k; va_list mar

    18熱度

    3回答

    變量模板有很多優點,但是有時候應該使用C-style variadic函數(使用<cstdarg>)來代替?

    2熱度

    1回答

    我試圖將可變參數從python傳遞給Java代碼。 Java代碼: LogDebugCmd.java public class LogDebugCmd implements Command { private Class clazz; private String format; private Object[] args; public LogDebug

    2熱度

    1回答

    我想包裝open功能。我不知道如何將可選的第三個參數傳遞給真正的open。據我所知,沒有辦法驗證va_list,所以if (mode)是不正確的在他下面的例子。有沒有辦法用適當數量的參數調用open? #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <f

    5熱度

    1回答

    mexPrintf,就像printf一樣,接受參數的可變參數列表。我不知道什麼是最好的方式來包裝在Rust。有一個RFC for variadic generics,但我們今天能做什麼? 在這個例子中,我想打印輸入和輸出的數量,但是打包函數只是打印垃圾。任何想法如何解決這個問題? #![allow(non_snake_case)] #![allow(unused_variables)]

    0熱度

    1回答

    我已經偶然發現了R兩次或三次的可變參數問題,但似乎我的問題比我預期的要複雜一些。這裏是 我有一個函數,它用它的變量做某事,但我想介紹另一個變量,一種標誌,它選擇函數的工作方式以及函數本身需要哪些參數:即輸入的數量和類型取決於(標誌)輸入。 好吧,一個例子是更好: example = function(x,flag=1,y){ if (flag) return(x) else r

    0熱度

    1回答

    我正在嘗試編寫自己的基本庫來編程純C++中的Arduino。我試過使用variadic函數來實現類似於Linux的ioctl()來控制SPI模塊,但它只是不起作用,我不知道爲什麼。在SPI事務處理期間,我沒有按照預期點亮13(Arduino SCK)指示SPI未運行。我的庫中的所有其他功能都正常工作。 以下是我的SPI庫: /* spi.h: SPI driver for Atmega3

    1熱度

    2回答

    我正在實現一種記錄調度器,即int32_t logf(const char *fmt, ...);,它根據編譯的選項輸出到不同的記錄目標。 以下是一段簡短的摘錄。 int32_t logf(const char *fmt, ...) { va_list va; i32 res; va_start(va, fmt); res = S_PASS; #