我目前使用的日志记录系统使用一个标记值来标识它将存储的参数。我们正在使用的格式如下:标签+时间+值。
/* Struct definitions */
typedef struct _Profiles {
int32_t param1;
int32_t param2;
int32_t param3;
int32_t param4;
int32_t param5;
int16_t param6;
int32_t param7;
uint32_t param8;
int32_t param9;
int32_t param10;
uint32_t param11;
int32_t time;
/* @@protoc_insertion_point(struct:Profiles) */
} Profiles;
profiles.param5 = 1500
profiles.time = 1345643
不要忘记结构的每个字段可能具有不同的类型。
我的方法是将指针指向每个字段,如下所示。
int *ptr[11] = {&profiles.param1, &profiles.param2, &profiles.param3,,,,,, &profiles.param11};
当消息到达时,我将使用ptr
更新字段。
*ptr[tag-1] = 1500; //tag-1 because ptr[4] points to profiles.param5
枚举具有名为'hash value'的属性,该属性是枚举内的索引。
问题内容: 我不确定两者中哪个最好定义常量。结构或枚举。每次我使用或不使用结构都会被复制吗?当我想到带有常量的结构时,我认为它会一直复制是没有意义的。但是,如果它不会被复制,那我拿走什么都没关系? 选择结构或枚举有什么优势? 问题答案: 结构和枚举均起作用。例如,两者 和 工作并定义静态属性。 回复:每次我使用与否,都会复制一个结构吗? 这两个和是值类型,以便将适用于枚举为好。但这 无关紧要 ,因
问题内容: 通过阅读SCJP书籍,我在第1章“自测”中发现了类似的内容: 注意:代码编译正常。我不明白的是为什么我们可以从变量访问DOG,CAT或FISH常量。我认为(并且也写在书中)DOG,FISH,CAT是常量,其实现方式类似于。 所以,如果它们确实是静态的,为什么我们可以从中访问它们呢?最后一行是我熟悉的方式。 问题答案: 写作 和写作一样。也就是说,编译器将用其编译时类型Animal替换变
我有一种情况,我试图对一些数据进行二进制解码,数据类型既有数值,也有字符串值和名称。我正在考虑使用枚举,例如: 然而,我也知道: 或者举另一个例子: 是否有一种方法可以将此结构重构为枚举,以便我用整数值构造枚举,但我将枚举“读”为字符串?我很确定答案是否定的。
问题内容: 什么是C#的Java等价物: 问题答案: 如果需要属性,则需要这样定义: 您可以这样使用它: 要意识到的是,这只是创建类的捷径,因此您可以向该类添加所需的任何属性和方法。 如果您不想在自己的方法上定义任何方法,则可以更改成员变量的范围并进行设置,但这不是它们在Sun网站上的示例中所做的。
问题内容: 我在声明枚举时遇到麻烦。我要创建的是一个“ DownloadType”的枚举,其中有3种下载类型(AUDIO,VIDEO,AUDIO_AND_VIDEO)。 我已经实现了如下代码: 如果我再像这样使用它,则效果很好: 但是,我希望这样,所以我不必要求“值”。我可能会弄错,但这是Java中几个类(例如Font)工作的方式,例如,设置字体样式,您可以使用: 它返回一个int值,我们不使用: