Tag: 多语言

在c / c ++中,是否可以在double(8-bytes)类型的变量中存储8个字符(每个1字节)?

我正在将一些传统的Fortran77代码迁移到C / C ++。 在Fortran77代码中,如果从文件中读入8个字符,则可以将它们存储在real * 8类型的变量中而不会出现问题。 是否有可能在C或C ++中做类似的事情? 如果是这样,我该怎么做? 我无法在互联网上找到任何解决方案。 我需要使用C / C ++读取8个字符并将它们存储在double类型的变量中,然后传递回Fortran并对应于原始的真实* 8变量。 非常感谢您的帮助。 编辑:为了回应@sixlettervariables,我将稍微澄清一下我的用例。 我对他的建议的问题是我在运行时只知道每一行的格式(即哪些字段是字符串,哪些数字),因此我无法知道结构应该静态的成员。 这些字段还需要按读入顺序占用连续的内存块。 具体地说,在程序的一次运行中,每行的格式可能是: f1:string,f2:number,f3:number,f4:string ,但在另一个f1:string中,f2:string,f3:string,f4:number ,f5:数字 。 对于我需要的第一种情况: struct { char[8] f1; double f2; double f3; char[8] f4} 对于第二个我需要: struct { char[8] f1; char[8] f2; char[8] f3; double f4; double f5} 也许有一些方法可以用模板做到这一点?