我有一个应用程序,我需要存储值,这些值可以是一个整数,一个字符串(固定大小字符数组),uint8_t,字符,…
这些值中的每一个还有额外的……
工会是要走的路!有一个 enum 说什么类型存储在那里(我用过 int_8 使示例小)然后执行此操作:
enum
int_8
struct { int_8 type; union { int_8 eight_wide_thing; char char_buffer[42]; double more_bad_variable_names; } int_32 foo_count; } example;
你可以这样做:
struct example bar; bar.eight_wide_thing = 42; printf("%d", bar.eight_wide_thing); bar.char_buffer[3] = '\0'; bar.char_buffer[0] = 'H'; bar.char_buffer[1] = 'i'; bar.char_buffer[2] = '!'; printf("%s", bar.char_buffer);
但不是这个:
bar.eight_wide_thing = 42; bar.more_bad_variable_names /= 6;