我有一個暗示有一個古老的討厭的方式來獲取函數作爲參數計算運行,但正弦我不知道它叫什麼我不能搜出規則。c語言中的語法是什麼語法作爲參數
一個例子
char dstr[20];
printf("a dynamic string %s\n", (prep_dstr(dstr),dstr));
的想法是,在「()」將在已執行prep_dstr功能之後返回的地址DSTR。
我知道這是醜陋的,我可以做它的前行 - 但它是複雜的...
#確定 - 在回答懇求不要這麼做。
我實際上是對一些現有的代碼進行MISRA清理(不是我不要拍我),目前'prep_dstr'函數需要一個緩衝區修改它(不考慮緩衝區的長度)並返回指針它作爲參數傳遞。
我喜歡採取一小步 - 再測試一小步。
所以 - 比返回一個不知道其持久性的指針稍微不討厭的方法是,停止函數返回一個指針並使用逗號操作符(確保它不會從緩衝區末尾跳出)。
這會導致MISRA錯誤倒計時,當它仍然有效並且MISRA錯誤消失時我會嘗試繞過優雅 - 也許在下一年後:)。
爲什麼不直接在線上做呢? – user2357112 2014-08-27 09:40:26
但是,這應該工作,不是嗎?用','返回最後一個表達式的結果。 – martin 2014-08-27 09:42:40
我不明白你在問什麼。你在問題中有正確的語法(雖然我不建議使用它)。 – interjay 2014-08-27 09:42:59