learning C & C++ - explicit typedef vs struct

This commit is contained in:
rusefi 2019-05-27 19:35:30 -04:00
parent cfe1f06e65
commit e117bff3de
3 changed files with 79 additions and 40 deletions

View File

@ -1,10 +1,10 @@
// this section was generated automatically by ConfigDefinition.jar based on integration\rusefi_config.txt Mon May 27 07:56:59 EDT 2019
// this section was generated automatically by ConfigDefinition.jar based on integration\rusefi_config.txt Mon May 27 19:21:18 EDT 2019
// begin
#ifndef ENGINE_CONFIGURATION_GENERATED_H_
#define ENGINE_CONFIGURATION_GENERATED_H_
#include "rusefi_types.h"
// start of pid_s
typedef struct {
struct pid_s {
/**
* offset 0
*/
@ -38,10 +38,12 @@ typedef struct {
*/
int16_t maxValue;
/** total size 20*/
} pid_s;
};
typedef struct pid_s pid_s;
// start of cranking_parameters_s
typedef struct {
struct cranking_parameters_s {
/**
* Fuel squirt duration while cranking
* A number of curves adjust this value according to CLT/IAT/TPS etc
@ -60,10 +62,12 @@ typedef struct {
*/
uint8_t alignmentFill[2];
/** total size 8*/
} cranking_parameters_s;
};
typedef struct cranking_parameters_s cranking_parameters_s;
// start of spi_pins
typedef struct {
struct spi_pins {
/**
* offset 0
*/
@ -82,10 +86,12 @@ typedef struct {
*/
uint8_t alignmentFill;
/** total size 4*/
} spi_pins;
};
typedef struct spi_pins spi_pins;
// start of air_pressure_sensor_config_s
typedef struct {
struct air_pressure_sensor_config_s {
/**
* kPa value at low volts
* offset 0
@ -109,14 +115,16 @@ typedef struct {
*/
uint8_t align[3];
/** total size 16*/
} air_pressure_sensor_config_s;
};
typedef struct air_pressure_sensor_config_s air_pressure_sensor_config_s;
/**
* @brief MAP averaging configuration
*/
// start of MAP_sensor_config_s
typedef struct {
struct MAP_sensor_config_s {
/**
* offset 0
*/
@ -140,14 +148,16 @@ typedef struct {
*/
air_pressure_sensor_config_s sensor;
/** total size 144*/
} MAP_sensor_config_s;
};
typedef struct MAP_sensor_config_s MAP_sensor_config_s;
/**
* @brief Thermistor known values
*/
// start of thermistor_conf_s
typedef struct {
struct thermistor_conf_s {
/**
* these values are in Celcuus
* offset 0
@ -178,14 +188,16 @@ typedef struct {
*/
float bias_resistor;
/** total size 28*/
} thermistor_conf_s;
};
typedef struct thermistor_conf_s thermistor_conf_s;
/**
* @brief Oil pressure sensor interpolation
*/
// start of oil_pressure_config_s
typedef struct {
struct oil_pressure_config_s {
/**
* offset 0
*/
@ -211,14 +223,16 @@ typedef struct {
*/
float value2;
/** total size 20*/
} oil_pressure_config_s;
};
typedef struct oil_pressure_config_s oil_pressure_config_s;
/**
* @brief Thermistor curve parameters
*/
// start of ThermistorConf
typedef struct {
struct ThermistorConf {
/**
* offset 0
*/
@ -233,10 +247,12 @@ typedef struct {
*/
uint8_t alignmentFill[3];
/** total size 32*/
} ThermistorConf;
};
typedef struct ThermistorConf ThermistorConf;
// start of injector_s
typedef struct {
struct injector_s {
/**
* cc/min, cubic centimeter per minute
* By the way, g/s = 0.125997881 * (lb/hr)
@ -257,10 +273,12 @@ typedef struct {
*/
float battLagCorr[VBAT_INJECTOR_CURVE_SIZE];
/** total size 68*/
} injector_s;
};
typedef struct injector_s injector_s;
// start of bi_quard_s
typedef struct {
struct bi_quard_s {
/**
* offset 0
*/
@ -282,10 +300,12 @@ typedef struct {
*/
float b2;
/** total size 20*/
} bi_quard_s;
};
typedef struct bi_quard_s bi_quard_s;
// start of specs_s
typedef struct {
struct specs_s {
/**
* Engine displacement, in liters
* see also cylindersCount
@ -301,14 +321,16 @@ typedef struct {
*/
firing_order_e firingOrder;
/** total size 12*/
} specs_s;
};
typedef struct specs_s specs_s;
/**
* @brief Trigger wheel(s) configuration
*/
// start of trigger_config_s
typedef struct {
struct trigger_config_s {
/**
* set trigger_type X
* offset 0
@ -333,10 +355,12 @@ typedef struct {
*/
int customSkippedToothCount;
/** total size 16*/
} trigger_config_s;
};
typedef struct trigger_config_s trigger_config_s;
// start of afr_sensor_s
typedef struct {
struct afr_sensor_s {
/**
* offset 0
*/
@ -362,10 +386,12 @@ typedef struct {
*/
float value2;
/** total size 20*/
} afr_sensor_s;
};
typedef struct afr_sensor_s afr_sensor_s;
// start of idle_hardware_s
typedef struct {
struct idle_hardware_s {
/**
* offset 0
*/
@ -387,10 +413,12 @@ typedef struct {
*/
pin_output_mode_e solenoidPinMode;
/** total size 8*/
} idle_hardware_s;
};
typedef struct idle_hardware_s idle_hardware_s;
// start of etb_io
typedef struct {
struct etb_io {
/**
* offset 0
*/
@ -409,10 +437,12 @@ typedef struct {
*/
brain_pin_e controlPin2;
/** total size 4*/
} etb_io;
};
typedef struct etb_io etb_io;
// start of board_configuration_s
typedef struct {
struct board_configuration_s {
/**
* offset 0
*/
@ -977,10 +1007,12 @@ typedef struct {
*/
int unusedAtBoardConfigurationEnd[122];
/** total size 864*/
} board_configuration_s;
};
typedef struct board_configuration_s board_configuration_s;
// start of engine_configuration_s
typedef struct {
struct engine_configuration_s {
/**
* http://rusefi.com/wiki/index.php?title=Manual:Engine_Type
* set engine_type X
@ -2507,10 +2539,12 @@ typedef struct {
*/
int mainUnusedEnd[611];
/** total size 6480*/
} engine_configuration_s;
};
typedef struct engine_configuration_s engine_configuration_s;
// start of persistent_config_s
typedef struct {
struct persistent_config_s {
/**
* offset 0
*/
@ -2748,8 +2782,10 @@ typedef struct {
*/
float fsioTable4RpmBins[FSIO_TABLE_8];
/** total size 20000*/
} persistent_config_s;
};
typedef struct persistent_config_s persistent_config_s;
#endif
// end
// this section was generated automatically by ConfigDefinition.jar based on integration\rusefi_config.txt Mon May 27 07:56:59 EDT 2019
// this section was generated automatically by ConfigDefinition.jar based on integration\rusefi_config.txt Mon May 27 19:21:18 EDT 2019

Binary file not shown.

View File

@ -53,7 +53,7 @@ public class CHeaderConsumer implements ConfigurationConsumer {
}
cHeader.write("// start of " + structure.name + EOL);
cHeader.write("typedef struct {" + EOL);
cHeader.write("struct " + structure.name + " {" + EOL);
structure.bitState.reset();
for (int i = 0; i < structure.cFields.size(); i++) {
@ -66,7 +66,10 @@ public class CHeaderConsumer implements ConfigurationConsumer {
}
cHeader.write("\t/** total size " + structure.currentOffset + "*/" + EOL);
cHeader.write("} " + structure.name + ";" + EOL + EOL);
cHeader.write("};" + EOL + EOL);
// https://stackoverflow.com/questions/1675351/typedef-struct-vs-struct-definitions
cHeader.write("typedef struct " + structure.name + " " + structure.name + ";" + EOL + EOL);
}
@Override