标签: program-entry-point

C中main(void)和main()之间的区别

谁能告诉我之间的差异int main()int main(void)?为什么它们都工作,默认参数是int main()什么?

c program-entry-point

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

如何用gcc改变C程序的入口点?

如何更改用gcc编译的C程序的入口点?
就像在下面的代码中一样

#include<stdio.h>
int entry()  //entry is the entry point instead of main
 {
   return 0;
 }
Run Code Online (Sandbox Code Playgroud)

c program-entry-point entry-point

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

可以使用"noexcept"说明符声明"main"函数吗?

以下代码在C++中是否有效?

int main() noexcept
{
}
Run Code Online (Sandbox Code Playgroud)

铛++ 3.8.0克++ 7.2.0 编译它细(与-std=c++14 -O0 -Wall -Wextra -Werror -pedantic-errors编译标志).

是否允许在函数规范中使用复杂条件(例如包括noexcept运算符)?noexceptmain

那么C++ 17呢?据我所知,noexcept说明符成为本标准修订版中函数类型的一部分.

c++ program-entry-point language-lawyer noexcept c++17

26
推荐指数
2
解决办法
925
查看次数

在 Rust 中,如果 main 函数返回 Err 会发生什么?

根据Rust 参考资料

如果main存在函数(snip),并且其返回类型必须是以下类型之一:

  • ()

  • Result<(), E> where E: Error

但它没有说明当main()return()Ok(())时会发生什么Err(<value>)

据我测试,

() Ok(()) Err(<value>)
退出状态 0 0 1
附加行为 - - Error: <value>被打印到stderr

这些行为是否在某些文档中定义、明确解释或保证?特别是,我可以假设

  • 返回时程序总是以1状态退出?main()Err(<value>)

  • main()返回时显示的错误消息Err(<value>)始终是以下形式Error: <value>


笔记:

  • 我想要某种有据可查的保证,而不是经验性的解释。这就是我添加#language-lawyer标签的原因。

  • 这个问题不是关于什么时候应该使用()以及什么时候应该使用Result<(), E>或诸如此类。如您所知,人们可以在许多文档或教程中找到此类问题的答案(或至少是提示或标准)。


更新:

TerminationTrait 最终在 Rust 1.61.0 中稳定下来(来源)。

program-entry-point exit-code language-lawyer rust

26
推荐指数
2
解决办法
3739
查看次数

Java中的String []和String ...有什么区别?

我该如何main()在Java中声明方法?

像这样:

public static void main(String[] args)
{
    System.out.println("foo");
}
Run Code Online (Sandbox Code Playgroud)

或者像这样:

public static void main(String... args)
{
    System.out.println("bar");
}
Run Code Online (Sandbox Code Playgroud)

究竟有什么区别String[],String...如果有的话?

java arrays program-entry-point

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

C中的main()函数

几个星期以来,我一直在以自学成才的方式学习C编程,而且我对这个main()功能有一些疑问.

  1. 所有函数必须在它们的函数原型中声明,然后在它们的定义中声明.为什么我们不必先main()在原型中声明该函数?

  2. 为什么我们要用int main()而不是void main()

  3. 返回0在main()函数中完全做了什么?例如,如果我编写一个程序结束main()函数,会发生什么return 1;

c program-entry-point

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

C++中main的签名参数是否具有unsigned和const限定符?

该标准明确规定main有两个有效(即保证有效)的签名; 即:

int main();
int main(int, char*[]);
Run Code Online (Sandbox Code Playgroud)

我的问题很简单,以下是合法的吗?

int main(const unsigned int, const char* const* argv);
Run Code Online (Sandbox Code Playgroud)

我的测试中说"是",但我不能确定的答案,因为我不能超载main改变intunsigned int以及非顶层const的argv -ness?如果我是,那显然是禁止的.

那么,这些修改是否可以保证在符合标准的编译器上工作?

c++ program-entry-point signature

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

为什么main()参数argv的类型为char*[]而不是const char*[]?

当我编写以下代码并执行它时,编译器说

不推荐使用从字符串常量转换为 char*

int main()  
{  
  char *p;  
  p=new char[5];  
  p="how are you";  
  cout<< p;  
  return 0;  
}  
Run Code Online (Sandbox Code Playgroud)

这意味着我应该写const char *.

但是当我们将参数传递给main使用时,char* argv[]我们不会const char* argv[].

为什么?

c++ program-entry-point

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

为什么Java中的main方法总是需要参数?

为什么Java中的main方法总是需要参数?我们为什么要String[] args每次都写,而不是在我们使用任何参数时写它?

像这样的方法会产生Main method not found编译器错误.由于我们从不对main方法使用任何参数,因此应该允许这样做.

public static void main()
{
}
Run Code Online (Sandbox Code Playgroud)

这不是面试问题.编程时我才想到它.

java program-entry-point

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

Java中main()方法和主线程之间的关系是什么?

我的导师告诉我主线程是每个线程的父线程,但他无法解释原因.

当我写一个简单的程序时:

Class A{}
Run Code Online (Sandbox Code Playgroud)

然后它在执行时抛出异常:

java.lang.NoSuchMethodError: main Exception in thread "main"
Run Code Online (Sandbox Code Playgroud)

main()方法和主线程之间有什么关系吗?

java multithreading program-entry-point

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