¿Funciones que devuelven Enums?

0

En Atmel ASF encontré este fragmento de código

enum status_code eeprom_emulator_init(void)
{ 

enum status_code error_code = STATUS_OK;
struct nvm_config config;
struct nvm_parameters parameters;

/* Retrieve the NVM controller configuration - enable manual page writing
 * mode so that the emulator has exclusive control over page writes to
 * allow for caching */
nvm_get_config_defaults(&config);
config.manual_page_write = true;

/* Apply new NVM configuration */
do {
    error_code = nvm_set_config(&config);
} while (error_code == STATUS_BUSY);

/* Get the NVM controller configuration parameters */
nvm_get_parameters(&parameters);

/* Ensure the device fuses are configured for at least one master page row,
 * one user EEPROM data row and one spare row */
if (parameters.eeprom_number_of_pages < (3 * NVMCTRL_ROW_PAGES)) {
    return STATUS_ERR_NO_MEMORY;
}

Por lo que sé sobre las enumeraciones, se utilizan para las variables, entonces, ¿cómo se usa para contener las instrucciones en el código anterior?

    
pregunta Sajid

1 respuesta

7

El enum no contiene el código. La función es una función ordinaria que devuelve un valor de tipo enum status_code .

Normalmente no ve esta sintaxis, porque la mayoría de los programadores también crearían un typedef para el enum status_code y lo usarían para declarar el tipo de valor de retorno de la función.

Por ejemplo:

typedef enum status_code status_code_t;

status_code_t eeprom_emulator_init (void)
{
    ...
    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas