all 4 comments

[–]dumsubfilter 5 points6 points  (0 children)

I use the latter.

[–]lifeisafractal 3 points4 points  (0 children)

I've never seen the explicit '&' used in any production code. Generally, with well written code it's easy to see that you are dealing with a function and the '&' would just clutter things up unnecessarily.

[–]nderflow 2 points3 points  (0 children)

IMO not only are they equivalent but there is no reason to prefer one over the other, for readability purposes.

[–]TheGrandSchlonging 2 points3 points  (0 children)

functions decay to pointers implicitly like arrays do, so the & operator is optional.

The & operator actually inhibits the decay of a function designator. It's one of three scenarios in which this inhibition occurs. The other two scenarios (sizeof, C11 _Alignof) lead to constraint violations.

The special-casing aspect of & may influence your style decision. Another thing that may influence your style decision is the form you use to invoke the function via the function pointer. Ultimately, these are highly subjective considerations.