主要是从主空不同的参数列表中有一个空的参数列表? [重复]

问题描述 投票:10回答:5

可能重复: Why is the type of the main function in C and c++ left to the user to define?

什么是无效?任何人都提供了一些例子,正确使用无效的?而这也正是当我们写void main (void)main()区别?

c main void
5个回答
12
投票

在C中,在一般情况下,(void)意味着没有在函数调用所需的参数,而()装置的参数未指定数量。

EG

void foo(void)
{
   // body
}

void bar()
{
    //body
}

在呼吁环境,

foo();  // Correct 
foo(1); // Incorrect
bar();  // Correct
bar(1); // Also correct

这是一般解释。

但是,对于你的情况主要为(),C99标准说,

5.1.2.2.1计划启动

所谓在程序启动的功能被命名为主力。实施声明没有原型实现此功能。它应为int的返回类型和不带参数进行定义:int main(void) { /* ... */ }

要么

用两个参数(此处称为argc和argv,虽然任何名称可以被使用,因为它们是本地的,其中声明它们的功能):int main(int argc, char *argv[]) { /* ... */ }或等同物;

要么

在一些其它实现定义的方式。

所以,在这个void main(void)返回类型应该是int

而在最后,对于main(),返回类型是不是给了这么含蓄返回类型是int


2
投票

不包括主要的作为返回类型

main(){
}

并不意味着它是一个void类型,它依赖于编译器。我认为可以说它通常被解释为

int main(){
}

所述void类型告诉编译器不存在“实体”(无“存储装置”),所以

void func(int i)

接受一个int,但没有返回。在参数的情况下,这样的:

void func()

相当于这个:

void func(void)

这表明更明确,它不带参数。不同的故事与类型void *这是一种类型,指针的东西量纲。


2
投票

基本上,空隙是一种数据类型,它基本上与方法声明使用。这意味着什么或没有类型。例如:

1)int myFunc(void) - 该功能将一无所获。

2)void myFunc(int) - 该函数返回什么

3)void* data; - “数据”是指向未知类型的数据,并且不能被解除引用


1
投票

虚空手段“emptyness”。在您的无效的主要的例子()这意味着主要的功能()没有返回值。我感到有必要告诉你,无效的主要()应当避免(没有双关语意)不惜一切代价,使用int main()的替代。 INT主()可以确保你的程序可以在接近一个int类型的值返回给操作系统。有空隙许多其他用途,请this website如果您想了解更多关于这一点。


0
投票

void是没有值的数据类型。这也是一个不能完成的不完整的数据类型。当作为返回类型的函数中使用,则表明该函数没有返回值:

void foo(int x);

当作为一个参数列表中,则表明该函数没有参数:

void bar(void);

这是从空参数列表,其指示函数采用的参数未指定数量(在C;在C ++中,空参数列表是相同的使用void)不同:

void bletch();

没有对象(变量)可以被键入void。但是,你可以声明类型void *的指针:这些都是“通用”的指针,可以转换为和其他指针类型没有一个明确的转换。标准内存分配函数malloccallocrealloc都返回void *

double *darr = malloc(sizeof *darr * rows);

在托管实现(基本上,与操作系统的任何东西),main必须声明为

int main(void)

要么

int main(int argc, char **argv) // the parameter names can be whatever you want,
                                // but argc and argv are the usual convention;
                                // char **argv is equivalent to char *argv[]

或在一些其它实现定义的方式;一个实现可以接受

void main()

作为main一个合法的签名,但必须明确记录在某个地方。

© www.soinside.com 2019 - 2024. All rights reserved.