Can you summarize the following document?
        
  

  在C語言中,C標準函式庫的stdarg.h標頭檔定義了提供可變引數函式使用的巨集。在C++,應該使用標頭檔cstdarg。  要建立一個可變引數函式,必須把省略號(...)放到引數列表後面。函式內部必須定義一個codice_3變數。然後使用巨集codice_4、codice_5和codice_6來讀取。例如:  這個是一段計算平均數的程式碼,可以輸入任意數量的小數並計算平均數,注意計算以0停止計算。請注意,函式不知道引數的數量或它們的型別,這裡要求的型別是codice_7,而且第一個引數傳遞可變引數的數量。在另外的情況 下,例如codice_1,引數的數量和型別都設定在格式字串中。在這兩種情況下,程式設計師實際上需要提供正確的引數,如果引數傳遞少了或引數的型別不正確,導致讀入記憶體的無效區(溢位),這樣會有安全漏洞如格式字串攻擊。

  C++11新增了initializer_list物件,當編譯器遇到大括號陣列變成函式的引數時,會自動將大括號陣列轉型成initializer_list物件,因此可以使用此原理來做出「相同型別」引數的可變引數函式。

  在JavaScript(簡稱js)中,函式的可變引數用法很巧妙。
在計算機程式設計,一個可變引數函式是指一個函式擁有不定引數,即是它接受一個可變數目的引數。不同的程式語言對可變引數函式的支援有很大差異。