gpt4 book ai didi

c - 私有(private)函数声明 gcc vs msvc

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:17 26 4
gpt4 key购买 nike

我不是 C 程序员,我正在尝试将补丁应用到使用 MSVC 编译良好的项目,但补丁是为 *nix 提供的。当我尝试使用 nmake 编译打补丁的项目时,我得到了这个错误:

error C2054: expected '(' to follow '__private'

引发此错误的代码是这样的:

private drawlist *
drawlist_append(p2mem *mem, drawlist_head *head)
{
drawlist *d = p2mem_alloc(mem, sizeof(drawlist));
if (!d) return 0;
memset(d, 0, sizeof(drawlist));
d->color = gx_no_color_index;
d->next = 0;
d->prev = head->last;
head->last = d;
(d->prev) ? (d->prev->next = d) : (head->first = d);
return d;
}

通过谷歌搜索,我怀疑 MSVC 不接受这种声明,但我不知道如何更改代码,因为如前所述,我不是 C/C++ 程序员。谁能协助如何更改此 private 函数调用,使其对 MSVC 有效?

最佳答案

如果drawlist_append是在class中声明的成员函数,你可以试试:

private:
drawlist* drawlist_append(p2mem *mem, drawlist_head *head)

如果 drawlist_append 是一个独立的函数,你只需删除 private,你可以试试这个:

drawlist* drawlist_append(p2mem *mem, drawlist_head *head)

另一种可能性是补丁提供者意味着 static 而不是 private。您可以尝试为 *nix C 添加以下宏:

#define private static

关于c - 私有(private)函数声明 gcc vs msvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500825/

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