相关疑难解决方法(0)

C++或C中foo(void)和foo()之间有区别吗?

考虑这两个函数定义:

void foo() { }

void foo(void) { }
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别吗?如果没有,为什么void那里的论点?美学原因?

c c++ arguments

243
推荐指数
3
解决办法
7万
查看次数

使用C void参数"void foo(void)"或不使用"void foo()"更好吗?

什么是更好的:void foo()void foo(void)?随着虚空,它看起来丑陋和不一致,但我被告知它是好的.这是真的?

编辑:我知道一些旧的编译器做了奇怪的事情,但如果我只使用GCC,那void foo()好吗?将foo(bar);随后被接受?

c void

200
推荐指数
6
解决办法
10万
查看次数

在C,C++和C#中,void意味着什么?

希望得到" 无效 "一词来源的基础知识,以及为什么它被称为无效.这个问题的目的是帮助那些没有C经验的人,并突然看到一个基于C的代码库.

c c# c++ terminology language-design

163
推荐指数
4
解决办法
36万
查看次数

一劳永逸地理解C和C++中f()和f(void)之间的区别

好的,所以我听到了关于这个主题的不同意见,只是想确保我理解正确.

对于C++

声明void f();void f(void);意思完全相同,功能f不带任何参数.同样的定义.

对于C.

声明void f(void);意味着f不带任何参数.

声明void f();意味着函数f可能有也可能没有参数,如果有,我们不知道它们是什么类型的参数,或者它们有多少参数.请注意,它与省略号不同,我们无法使用va_list.

现在这里的事情变得有趣了.

情况1

宣言:

void f();
Run Code Online (Sandbox Code Playgroud)

定义:

void f(int a, int b, float c)
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

案例2

宣言:

void f();
Run Code Online (Sandbox Code Playgroud)

定义:

void f()
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

题:

当我们f使用正确的参数,错误的参数和根本没有参数调用时,在情况1和2的编译时会发生什么?运行时会发生什么?

附加问题:

如果我f用参数声明,但没有它们来定义它,它会有所作为吗?我应该能够解决函数体中的参数吗?

c c++ function void

42
推荐指数
2
解决办法
2万
查看次数

为什么将void添加到方法参数列表中

我见过带有以下签名的方法:

void foo (void);
Run Code Online (Sandbox Code Playgroud)

他们没有争论,但我想知道这样做是否有用.你有没有理由想要这样做?

c++

31
推荐指数
2
解决办法
9892
查看次数

在函数参数中使用void

可能重复:
C void参数

刚开始用C而我找不到答案...

两者之间有什么区别吗?

int foo() { }

int foo(void) { }
Run Code Online (Sandbox Code Playgroud)

我应该选择哪个?为什么?

请注意,这个问题也适用于:int main.它应该是:int main或者int main(void)当我不想要任何命令行参数时.

c

7
推荐指数
1
解决办法
4394
查看次数

void(*foo)(void):最新的含义(void)

BATMAN/ALFRED OpenMesh项目:

function read_answer实例化指向已定义的类型struct vis_print_ops的指针

struct vis_print_ops
{
    void (*preamble)(void);
    void (*interfaces)(uint8_t iface_n, struct vis_iface *ifaces);
    void (*entries)(uint8_t entries_n, struct vis_entry *vis_entries,
            uint8_t iface_n, struct vis_iface *ifaces);
    void (*postamble)(void);
};
Run Code Online (Sandbox Code Playgroud)

现在看看

void (*preamble)(void)
Run Code Online (Sandbox Code Playgroud)

你能告诉我最后一个(无效)是什么意思吗?是不是

void (*preamble)
Run Code Online (Sandbox Code Playgroud)

足够?

c void

-2
推荐指数
2
解决办法
627
查看次数

标签 统计

c ×6

c++ ×4

void ×3

arguments ×1

c# ×1

function ×1

language-design ×1

terminology ×1