Java与C |将对象作为参数传递
最近我开始学习C语言,我对这里的东西感到困惑-> 我有一个Java程序,它读取一个文件并计算其中的单词。现在我试着用C重新写它 所以,在Java中,我有这样一个: 使用main()方法初始化 在WR类的构造函数旁边Java与C |将对象作为参数传递,java,c,class,object,constructor,Java,C,Class,Object,Constructor,最近我开始学习C语言,我对这里的东西感到困惑-> 我有一个Java程序,它读取一个文件并计算其中的单词。现在我试着用C重新写它 所以,在Java中,我有这样一个: 使用main()方法初始化 在WR类的构造函数旁边 private static final int READING_WHITESPACE = 11; ... private int state; private BufferedReader reader; public WordReader(Fil
private static final int READING_WHITESPACE = 11;
...
private int state;
private BufferedReader reader;
public WordReader(File words)
{
state = READING_WHITESPACE;
try
{
reader = new BufferedReader(new FileReader(words));
}
catch (FileNotFoundException e)
{
}
}
一切都已初始化,可以使用
现在在C中是:
(主要课程)
现在让我困惑的是,我需要在WR构造函数中处理这个文件对象
(WR的头文件)
(WordReader.c)
在主类中,您已经使用
fopen
获取要从中读取的文件的文件句柄,并将其作为参数传递给createWordReader
。您可能只想将文件句柄保存在WordReader结构中,以便在将来调用fread
时从文件中读取数据时使用它
reader->file = fileToRead;
我想你在找这个:
reader -> file = fileToRead;
如果在
C
中没有类,那么就没有结构,没有对象,没有构造函数或析构函数。。只需分配reader->file=fileToRead代码>@nachokk我还没有用C术语。Java不断涌现。是的,现在你指着它。如果我仔细想想,这是很明显的。我还没有使用C语言,从Java转换过来后,我感到很困惑。
typedef struct _WordReader
{
int state;
FILE* file;
} WordReader;
WordReader* createWordReader(FILE* fileToRead);
...
WordReader* createWordReader(FILE* fileToRead)
{
WordReader* reader = malloc(sizeof(WordReader));
reader -> state = READING_WHITESPACE;
//-----------------
reader -> file; // What to do with it?
//-----------------
// reader -> file = fopen(fileToRead, "r"); Maybe? I've tried like this but
all I get is a bunch of errors.
//-----------------
return reader;
}
reader->file = fileToRead;
reader -> file = fileToRead;