Breve domanda
Esiste un modo tipico di nominare membri "pubblici" e "privati" di un progetto OO C?
Contesto
Sono pienamente consapevole che i membri pubblici e privati non esistono realmente nel linguaggio C. Tuttavia, come la maggior parte dei programmatori C, continuo a trattare i membri come pubblici o privati per mantenere il design OO. Oltre ai tipici metodi OO, ho trovato me stesso seguendo uno schema (vedi esempio sotto) che mi rende più facile distinguere quali metodi sono destinati al mondo esterno rispetto ai membri privati che possono avere meno controlli / sono più efficienti ecc. ... Esiste una prassi standard o migliore per una cosa del genere o il mio esempio di seguito è un buon modo per affrontarlo?
Esempio di intestazione
#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 di esempio
// 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
}