Pergunta curta
Existe uma maneira típica de nomear membros 'públicos' e 'privados' de um projeto OO C?
Antecedentes
Entendo perfeitamente que os membros públicos e privados não existem realmente na linguagem C. No entanto, como a maioria dos programadores em C, eu ainda trato os membros como públicos ou privados para manter o design do OO. Além dos métodos típicos de OO, encontrei-me seguindo um padrão (veja o exemplo abaixo) que facilita para mim distinguir quais métodos se destinam ao mundo exterior versus os membros privados que podem ter menos verificações / são mais eficientes etc. ... Existe uma norma ou prática recomendada para tal coisa ou o meu exemplo abaixo é uma boa maneira de abordar isso?
Cabeçalho de exemplo
#ifndef _MODULE_X_H_
#define _MODULE_X_H_
bool MOD_X_get_variable_x(void);
void MOD_X_set_variable_x(bool);
#endif /* _MODULE_X_H_ */
Fonte de exemplo
// Module Identifier: MOD_X
#include "module_x.h"
// Private prototypes
static void mod_x_do_something_cool(void);
static void mod_x_do_something_else_cool(void);
// Private Variables
static bool var_x;
// Public Functions - Note the upper case module identifier
bool MOD_X_get_variable_x(void) {return var_x;}
void MOD_X_set_variable_x(bool input){var_x = input;}
// Private Functions - Note the lower case module identifier
void mod_x_do_something_cool(void){
// Some incredibly cool sub routine
}
void mod_x_do_something_else_cool(void){
// Another incredibly cool sub routine
}