Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C主与Java主_Java_C - Fatal编程技术网

C主与Java主

C主与Java主,java,c,Java,C,C主函数和Java主函数之间的区别是什么 int main( int argc, const char* argv[] ) vs 这些主要功能与每种语言的创建有什么关系?它们的好处或结果是什么?它们的作用是一样的——它们都是您的程序的入口点 签名的不同之处在于,Java支持的数组“知道”它们的长度,而C不知道。这就是为什么需要argc,它是传递的参数数的计数 在C语言中,通过使用return关键字以及一个整数值向shell返回成功或失败代码。在Java中,可以通过调用System.Exit(代

C主函数和Java主函数之间的区别是什么

int main( int argc, const char* argv[] )
vs

这些主要功能与每种语言的创建有什么关系?它们的好处或结果是什么?

它们的作用是一样的——它们都是您的程序的入口点

签名的不同之处在于,Java支持的数组“知道”它们的长度,而C不知道。这就是为什么需要
argc
,它是传递的参数数的计数

在C语言中,通过使用
return
关键字以及一个整数值向shell返回成功或失败代码。在Java中,可以通过调用System.Exit(代码)并返回代码来实现。做同一件事的两种不同方式

这家伙对这个话题有兴趣

> P>在C++编译器工具链中,链接器使用C(主函数)中的入口点,当可执行目标被指定时运行(可忽略该函数)时运行该链接。这个入口点是可执行规范的一部分,并且是静态的。它依赖于位于特定具体内存地址的机器代码。想象一下,我们将args数组指针和args计数放在内存中的堆栈上,该堆栈是在操作系统运行可执行文件时设置的,然后运行机器代码。此外,C函数有一个int返回类型,用于将失败或成功返回给shell(通常为EXIT_success(通常为0)或EXIT_failure)


Java(主方法)中的入口点是动态的,因为Java本身是一种解释型JIT语言,依赖于类路径上具有此方法的类,并在执行“Java”命令时指定。查找主方法在字节码中的位置需要一些处理,然后通过字节码解释器运行内容。args数组也会进入堆栈,供方法体使用,但它的设置不止于此,因为它是一个数组对象——我们让它在通过JNI或诸如此类的工具启动后进行转换。Java在main方法中没有返回类型,但是可以抛出一个未检查的异常来指示失败(可能)。

您不明白其中一个(或两个)是做什么的吗?这不是不理解。它是“这些主要功能与每种语言的创建有什么关系,以及每种语言的好处或结果是什么?”+1不常被理解的事实是Java二进制文件的集合(类文件,可能在jar中)可能包含多个
main
方法,只有JavaVM的参数指示它如何找到合适的方法开始。其中,C/C++程序是一个已编译的可执行文件,具有一个已定义的入口点,每个备用入口点都需要一个新的已编译可执行文件。
public static void main(String [] args)