Avoid problems due to unsafe macros

Having parameters with side effects causes problems when unsafe
function like macros are pulled in from the build environment.
As per Open Group specification htonl may a function like macro,
which may have an unsafe implementation.
Merge pull request #84 from JaapKeuter/unsafe_macro

Thanks for the contribution.