Struct访问代表文件名?

时间:2014-10-01 13:23:32

标签: c data-structures macros struct io

一旦我看到非常有趣的代码,包含类似的内容:

typedef struct
{
    FILE* txt;
    FILE* ini;
} PFILE;

int main(void)
{
    PFILE NEW_FILE;
    create_file (settings.txt); // creats file called settings.txt

    return 1;
}

我可能缺少的是一些神秘的宏。这只是我不记得的代码的一部分。 哦,显然我错过了create_file功能。无论如何,我确定你得到了我所要求的。怎么可能呢?

1 个答案:

答案 0 :(得分:2)

create_file绝对是一个宏,它使用#运算符对其参数进行字符串化,并在其上调用fopen()(或调用它的函数)。

可以这样定义:

#define create_file(x) NEW_FILE.txt = fopen(#x, "w")