In C, a function pointer (evidently) can be referred to with or without the & operator. Is there a stylistic reason to choose one over the other?
The following code compiles and runs in gcc x86-64 12.2 -Wall without any warnings:
#include <stdio.h>
int cb1(void) { return 1; }
int cb2(void) { return 2; }
void do_cb(int (*cb)(void)) { printf("%d\n", cb()); }
int main(void) {
do_cb(cb1);
do_cb(&cb2);
}