2017-08-29 53 views
0

在不提供格式(如%d,%f)的情況下在printf中使用變量是合法的。 例如:printf:提供沒有格式化的變量

printf("value is ok\r\n",myvalue); 

命令編譯沒有錯誤,也沒有警告,雖然我沒有絕對的把握,如果它是合法的或危險的。

回答

1

reference

應該有至少儘可能多的這些參數作爲格式說明符指定值的數量。其他參數被函數忽略。

根據這些信息,您的聲明是完全合法的,但我不認爲這是一個好主意,因爲您的代碼可能會很快變得混亂,這可能會導致錯誤。


編輯:最初來源沒有明確提到的參數的情況下。若要添加其他來源,linux man pages狀態

格式字符串由零個或多個指令組成。

此來源不討論額外參數會發生什麼。然而,結合這兩個來源給出了一個明確的答案。