In 'C', I have:
typedef struct
{
int aaa;
int bbb;
} My_Struct;
And I want to make a constant script for a regression test that contains multiple copies of My_Struct with initialized values, but also with the labels (aaa & bbb) for readability and convenience.
I can't figure out the syntax, or if this is even possible in C.
The closest I can get it is this:
struct
{
struct {
int aaa = 111;
int bbb = 222;
} first_script;
struct {
int aaa = 333;
int bbb = 444;
} second_script;
} const my_script_array;
But how do I define my_script_array to be an array of type My_Struct so that I don't have to cast it like (My_Struct)my_script_array in the code?
(COMPILER NOTE: I'm editing this software using Visual-C++, but it runs on Xcode 7.3 for ios, and ultimately it needs to compile on an ARM embedded processor.)
NEXT ATTEMPT:
The following code has no errors on Visual-C++ but gets Xcode error "expected ;" before the first '=' and also for the next dozen lines.
// Script of multiple reference summaries
struct
{
struct
{
// WORDS:
int total_words = 1;
float all_absolute_impulse_gseconds = 2; // gravity X seconds
float all_average_absolute_impulse_gseconds = 3;
float all_positive_impulse_gseconds = 4;
float all_negative_impulse_gseconds = 5;
float x_absolute_impulse_gseconds = 6;
float x_average_absolute_impulse_gseconds = 7;
float x_positive_impulse_gseconds = 8;
float x_positive_average_impulse_gseconds = 9;
float y_absolute_impulse_gseconds = 10;
float y_average_absolute_impulse_gseconds = 11;
float z_absolute_impulse_gseconds = 12;
float z_average_absolute_impulse_gseconds = 13;
float minimum_word_duration_seconds = 14;
float average_word_duration_seconds = 15;
float maximum_word_duration_seconds = 16;
// EVENTS:
int total_events = 17;
int x_negative_transitions = 18;
int x_zero_transitions = 19;
int x_positive_transitions = 20;
int y_negative_transitions = 21;
int y_zero_transitions = 22;
int y_positive_transitions = 23;
int z_negative_transitions = 24;
int z_zero_transitions = 25;
int z_positive_transitions = 26;
int total_comparison_attributes = 27; // set by update_summary_attributes()
int final_script_record = 0;
} first;
struct
{
// WORDS:
int total_words = 28;
float all_absolute_impulse_gseconds = 29; // gravity X seconds
float all_average_absolute_impulse_gseconds = 30;
float all_positive_impulse_gseconds = 31;
float all_negative_impulse_gseconds = 32;
float x_absolute_impulse_gseconds = 33;
float x_average_absolute_impulse_gseconds = 34;
float x_positive_impulse_gseconds = 35;
float x_positive_average_impulse_gseconds = 36;
float y_absolute_impulse_gseconds = 37;
float y_average_absolute_impulse_gseconds = 38;
float z_absolute_impulse_gseconds = 39;
float z_average_absolute_impulse_gseconds = 40;
float minimum_word_duration_seconds = 41;
float average_word_duration_seconds = 42;
float maximum_word_duration_seconds = 43;
// EVENTS:
int total_events = 44;
int x_negative_transitions = 45;
int x_zero_transitions = 46;
int x_positive_transitions = 47;
int y_negative_transitions = 48;
int y_zero_transitions = 49;
int y_positive_transitions = 50;
int z_negative_transitions = 51;
int z_zero_transitions = 52;
int z_positive_transitions = 53;
int total_comparison_attributes = 54; // set by update_summary_attributes()
int final_script_record = 0;
} two;
int final_script_record = true;
} const REFERENCE_SUMMARY_SCRIPT