Variables should have the type prefix as mentioned in (13.7.1), which can also be preceeded by a ``p'' for pointer. Else they should not have underscores, but capital letters to specify the beginnig of a new logical unit. Where appropriate they should have a unit in the end separated by an underscore this time. Some variables (where we don't care too much) may actually still be int.
U16 pu16Buffer[N];
int iTempIndex;
F32 f32DwellTime_ms;
struct sockaddr_in *psinServer;
For classes and functions we should stick to lowercase letters only, parts separated by underscores. This is partly, because I think the file name should be the same as the class name and I guess, we don't want uppercase letters in file names.
int ni_do::init_device(log_err *log_err) { ... }
Macros are of course all uppercase with underscores between parts.
#define MAX_STEPSIZE_UM 9.123