我是编程新手。我需要将Fortran 95文件转换为C文件。在Fortran文件的开头,我有一个模块,其中包含一系列在各种函数中使用的变量(不要注意注释):
MODULE data
IMPLICIT NONE
SAVE
DOUBLE PRECISION, PARAMETER :: tmax_dsmc = 450.D0 ! durata simulazione
DOUBLE PRECISION, PARAMETER :: tim_dsmc = 150.D0 ! istante inizio campionamento
DOUBLE PRECISION, PARAMETER :: dt_dsmc = 0.05D0 ! passo temporale
DOUBLE PRECISION, PARAMETER :: alpha_dsmc = 0.02D0 ! gradiente velocita'
有没有办法在C中复制它?我知道我可以使用命令#define variable x
,但我不知道它是否正确;我的目标是在代码中的某处定义这些常量,这样如果我修改了一个,程序的每个部分都可以知道我分配的新值。当然,我可以在代码中的每个函数中定义每个常量,但这会浪费很多时间。
答案 0 :(得分:3)
如果要在C中定义常量,可以使用#define PI 3.1415926
。如果您不想在任何地方复制此内容,那么您可以使用#include
这样的内容:
首先是一个标题(在名为MyConsts.h
的文件中):
/* My constants */
#define PI 3.1415926
然后是一个模块(在某个.c
文件中):
/* A module */
#include "MyConsts.h" // include here the contents of the file
...
double p = 2*PI*r;
...
和另一个(在另一个.c
文件中):
/* Another module */
#include "MyConsts.h" // include here the contents of the file
...
double s = PI*r*r;
...
如果您通过描述Makefile
中的依赖关系来使用干净的编译过程,那么MyConsts.h
中的每个修改都将反映到对象模块中。