![]() |
1
17
基本上是设计二进制网络协议,所以您可能希望使用现有的库(如谷歌的协议缓冲区)。如果您仍然想设计自己的结构,可以通过这样做来实现编写原始结构的合理可移植性:
这样,只要使用相同的结构定义,就可以合理地确定在另一端会得到相同的结果。不过,我不确定浮点数的表示,但我通常会避免发送它们。 与可移植性无关的另一件事是通过引入长度作为第一个字段和/或使用版本标记来实现向后兼容性。 |
![]() |
2
2
您可以尝试使用一个库,如协议缓冲区;滚动您自己的库可能不值得这么做。 |
![]() |
3
0
为输出编写一个函数。 使用sprintf将每个字段的ascii表示打印到文件中, 每行一个字段。 为输入编写一个函数。 使用fgets从文件中加载每一行。 使用scanf转换为二进制,直接转换为结构中的字段。 如果你打算用很多不同的结构来做这个, 考虑在每个文件中添加一个头,它标识什么类型的结构 它代表。 |