1

我目前正在开发一个从 fortran 到 c# 的项目,并且遇到了一些扩展名为 .INC Foll 的头文件。是头文件的一个例子

**     MAIN.INC
   INTEGER uid
   INTEGER MathsMarks
   INTEGER AWAMarks
   INTEGER ScienceMarks
   LOGICAL isStudent
   REAL*8 percentage
   REAL avg
   CHARACTER*2 sName
   LOGICAL*1 sUpdateStat
   DOUBLE PRECISION d_var
   complex*8 c8_var

谁能指导我在 C# 中转换此头文件 (.INC) 的最佳策略

4

1 回答 1

1

你知道 main.inc 是如何使用的吗?它出现在多个文件中还是仅出现在一个文件中?是否有与这些变量名关联的公共块?

如果没有与之关联的公共块,那么很可能是一堆不共享的常用局部变量。

如果有与之关联的公共块,则它们是全局变量。如果处理得当,common 也应该在 inc 文件中。在 C# 中,如果所有内容都在同一个类中,那么这些将是类级别的声明。

翻译

  • 整数 = 整数
  • 逻辑=布尔
  • 实数*4 或实数 = 浮点数
  • 实数*8 = 双倍
  • 参数 = 常量
  • 维度是一个数组声明。请记住,数组默认从 1 开始,但这可以在声明中被覆盖。他们可以从任何数字开始。例如维度(-23:10)将从-23开始。
  • 等价是一个联合
  • character*n 是 n 个字符上的字符串,空格填充,不以 null 结尾

[已编辑] 最初,在您弄清楚程序在做什么之前,初始翻译中的所有内容都是公开的和静态的。一旦你这样做了,它就可以被重构。

如果命名为 common,则将其放在与命名 common 同名的静态类中。如果是未命名的common,则将其作为静态声明放在主类中。通常,如果某些东西在一个公共块中,它会在函数之间共享,所以不要将它放在结构中。

等价是一个讨厌的东西:取决于它的使用方式。

  • 有时它用于将数据传递给例程,例如传递类。在这种情况下,您可以放弃等价并将结构声明为类。
  • 有时它被用作在整个地方移动值的全局结构。你必须看这个。它通常是一个巨大的双精度数组。每个成员都等同于完全不同的东西——一些整数、一些双精度、一些字符。它们始终具有相同的索引并且始终具有相同的名称。
  • 有时它用于转换
  • 有时它们用于将数组的一部分映射到另一部分。
于 2013-09-17T09:47:42.593 回答