我正在与一位同事讨论如何在我们的代码库中构造返回代码检查。在很多地方,代码看起来像这样:
logOnError(functionWithLotsOfParameters(a, b, c, d, etc),
"Error Message", module_name, some_more_stuff);
Run Code Online (Sandbox Code Playgroud)
我认为这种隐藏了这里实际发生的事情,即内部函数的函数调用。我想像这样构造代码:
ReturnType ret;
ret = functionWithLotsOfParameters(a, b, c, d, etc);
logOnError(ret, "Error Message", module_name, some_more_stuff);
Run Code Online (Sandbox Code Playgroud)
ReturnType在这种情况下基本上只是一个unsigned int. 我的同事认为,这不必要地增加了函数的堆栈大小,这可能是一个问题,因为它在嵌入式系统上运行,而我们在某种程度上受到内存限制。
我的反驳观点是,即使在第一种情况下,返回值也必须位于内存中的某个位置,所以我认为占用空间不会增加。
谁是对的?