C 结构访问以表示文件名?

C 结构访问以表示文件名?,c,data-structures,macros,struct,io,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\u

有一次我看到了非常有趣的代码,其中包含如下内容:

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\u file
函数。不管怎样,我相信你会明白我的要求。这怎么可能呢?

create_file
绝对是一个宏,它用
操作符将其参数字符串化,并对其调用
fopen()
(或调用它的函数)

可以这样定义:

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

请给我举个例子,说明我是如何做到这一点的。在我当前的项目中,我似乎也需要它。所以不仅仅是好奇,
#
操作符?我只记得那些只用于声明预处理器指令的书。如果是
settings.ini
我不明白怎么办。也许我需要了解一下
#
来了解它out@Edenia那只是在一行的开头。在宏的中间,它变成了“StrugI化”运算符。应该是struct PFILE NEW_FILE;你在说什么?