c - 结构访问代表文件名?

标签 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 函数。不管怎样,我相信你能理解我的要求。这怎么可能?

最佳答案

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

可以这样定义:

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

关于c - 结构访问代表文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26142460/

相关文章:

c - 内存分配问题

c - 将 “pointer to pointer” 和 “address of pointer” 传递给函数之间的区别

c# - 维护序数集合的正确顺序

c - 如何有条件地在宏中包含 #ident 指令?

c++ - 确定是否传递了类型的宏

c - Visual Studio 的新安装中未安装标准 C/C++ 库

java - findMin 惰性删除二叉搜索树

c++ - 堆栈使用链表错误

c++ - 如何在另一个#define 中实现#define?

c - 使用 scanf 函数为变量赋值