我有一个暗示有一个古老的讨厌的方式来获取函数作为参数计算运行,但正弦我不知道它叫什么我不能搜出规则。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