gpt4 book ai didi

c - 调用方法时如何在 C 中使用类似名称的类

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:41 25 4
gpt4 key购买 nike

控制台.c

void write(const char* string) {
// ...
}

控制台.h

void write(const char* string);

我的应用程序.c

write("Hello world.\n");

但为了清楚起见,我不想只使用 write()...而是使用 console.write()Console.write ()。这可能吗?

我真的不想使用 console_write(),除了美观之外没有其他原因。

背景

我是C初学者,但精通C#。这是我在做 OS 开发基础教程时想到的,在该教程中我使用了更适合 C 开发的交叉编译器。事实上,如果可能的话,我更愿意在 C 中执行此操作,而不是与 C++ 混合使用。

最佳答案

您可以在 struct 中使用指向函数的指针。

您可以创建例如一个 struct console,其中有一个指向函数的指针:

typedef struct Console {
void (*write)(const char*);
//...
} Console;

稍后分配给函数:

//function declaration
void write(const char*);
//...
Console console;
console.write = &write;
console.write("writing something to console");

如果您的编译器支持C99 并且您想要跳过赋值,您可以将console 对象设为全局对象并赋值其内部结构,例如所以:

void write(const char*);
struct Console {
void (*write)(const char*);
} c = { &write };

因为我首先创建这个作为评论,后来创建了一个删除评论的答案,@user694733 回复了,我想说我同意 user694733 的观点:“最好以最适合的方式使用每种编程语言自然会处理好自己。” :)

关于c - 调用方法时如何在 C 中使用类似名称的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43673491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com