Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

at that point why not just pass in a struct as your argument


I suppose it depends on your application. I worked in embedded devices where stack was limited and the compiler was .... less than reliable about how it would manage passing a large struct to your function, which is why I mentioned passing in a pointer instead


yes a pointer to struct would be acceptable as well


In 1998 perhaps. It wouldn't be acceptable to today's C++ value-semantics crowd. Are you sure that you want to take the indirection penalty? or that the compiler will optimise it away?


If stack space usage is an issue, then it means that the struct is already being passed by hidden pointer (as opposed to using a register passing calling convention). Making the pointer explicit won't have any effect on performance (but it will on semantics).


C++ is already so reliant on optimizing `const&` parameters that I can't imagine why you wouldn't use them if you happen to be stuck with a shitty embedded toolchain (or MSVC) that can't be relied on to pass struct parameters efficiently.


depending on the platform this may cause things to be pushed / poped on the stack instead of being passed as registers




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: