标签: program-entry-point

如何访问全局变量

我对golang很新,这应该是一个简单的答案,但我试着搜索每一个没有运气的地方.

如何在不同的.go包/文件中访问main.go中声明为/ init的全局变量?继续告诉我变量是未定义的(我知道全局变量很糟糕,但这只是用作时间戳)

在main.go

var StartTime = time.Now()
func main(){...}
Run Code Online (Sandbox Code Playgroud)

尝试在不同的.go文件中访问StartTime,但一直未定义StartTime

variables program-entry-point global go

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

在main之前调用一个函数

可能重复:
main()是否真的启动了C++程序?

可以在程序启动前调用我的函数吗?我该怎么做这项工作C++还是C

c c++ program-entry-point startup

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

为什么int main(){}编译?

(我正在使用Visual C++ 2008)我总是听说main()需要返回一个整数,但是这里我没有放入return 0;并且它编译时出现0错误和0警告!在调试窗口中,它表示程序已经退出代码0.如果此函数被命名为main()以外的任何东西,编译器会抱怨说'blah'必须返回一个值.粘贴a return;也会导致错误出现.但完全不考虑它,它编译得很好.

#include <iostream>
using namespace std;

int main()
{
    cout << "Hey look I'm supposed to return an int but I'm not gonna!\n";
}
Run Code Online (Sandbox Code Playgroud)

这可能是VC++中的一个错误吗?

c++ program-entry-point return-value

36
推荐指数
2
解决办法
9279
查看次数

为什么SDL定义主宏?

在设置SDL时遇到一些问题后,我发现SDL定义了一个替换main的宏:

#define main SDL_main

// And then
extern C_LINKAGE int SDL_main(int argc, char *argv[]);
Run Code Online (Sandbox Code Playgroud)

如果main函数没有定义argcargv参数,这也会产生编译错误.

当我看到它时,这个宏让我很头疼...为什么SDL需要重新定义主要?经过一番搜索,我找到了一些人#undef main,并以正常的方式使用它.

所以这就是问题: 为什么SDL需要重新定义main,它做什么?取消定义是否有任何副作用?

我注意到的一件事是SDL将标准输出和错误重定向到文件(我不想要这种行为),如果我取消定义主要行为,这种行为就会停止.

c++ program-entry-point sdl

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

带通用参数的主要方法; 它为什么有效?

public static <T extends String> void main(T[] args) {
    System.out.println("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)

我很想知道上面的代码片段是否可以编译并成功运行,而且确实如此!但是,我也想知道如果T extends String被替换会发生什么T extends String & AutoClosable; String没有实现AutoClosable,所以我没想到这会成功运行,但它仍然存在!

public static <T extends String & AutoCloseable> void main(T[] args) {
    System.out.println("This still works!");
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,为什么这仍然成功运行?

备注:

  • 我正在使用Java 10.0.1进行测试
  • Intellij对这种方法不好看,因为它不认为它是程序的入口点; 我没有用其他IDE测试过它.
  • 您也可以使用命令行传递参数,就像使用任何其他程序一样.

java generics program-entry-point type-inference

35
推荐指数
1
解决办法
1361
查看次数

PHP相当于Python的__name__ =="__ main__"?

根据标题,是否有PHP相当于__name__ == "__main__"

有什么东西适用于通过命令行和Web请求执行的脚本,还是需要自定义函数?

对于那些不熟悉Python的人来说,__name__ == "__main__"允许你定义一个模块文件,并且如果它是入口点,还有一些允许你运行它的东西.PHP中的等效结构类似于:

// SomeClass.php
<?php
class SomeClass
{
    function doStuff() {
        echo "wahey!\n";
    }
}

// python, I know.
if (__name__ == "__main__") {
    $sc = new SomeClass;
    $sc->doStuff();
}
?>

// OtherClass.php
<?php
require_once("SomeClass.php");
class OtherClass
{
    public $yep;
}
?>

// command line:
php SomeClass.php     // outputs "wahey!"
php OtherClass.php    // outputs nothing
Run Code Online (Sandbox Code Playgroud)

注意:zerkms的答案是最好的,但是不太正确 - 它应该是:

if (!debug_backtrace()) {
    // do useful stuff
}
Run Code Online (Sandbox Code Playgroud)

这比!count(debug_backtrace())快得多,它本身的速度大约是我的涉及realpath()的解决方案的两倍.

php program-entry-point

34
推荐指数
2
解决办法
4745
查看次数

crt1.o:在函数`_start'中: - Linux中对'main'的未定义引用

我正在将应用程序从Solaris移植到Linux

链接的目标文件没有定义main().但是在Solaris中正确地完成了编译和链接,并生成了可执行文件.在Linux中我得到这个错误

    /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main' 
Run Code Online (Sandbox Code Playgroud)

我的问题是,我不能包含新的.c/.o文件,因为它是一个巨大的应用程序,并已运行多年.我怎样才能摆脱这个错误?

makefile的代码提取:

RPCAPPN = api
LINK = cc 

    $(RPCAPPN)_server: $(RPCAPIOBJ)
            $(LINK) -g $(RPCAPIOBJ) -o $(RPCAPPN)_server $(IDALIBS) $(LIBS) $(ORALIBS) $(COMMONLIB) $(LIBAPI) $(CCLIB) $(THREADLIB) $(DBSERVERLIB) $(ENCLIB)
Run Code Online (Sandbox Code Playgroud)

linux program-entry-point undefined-reference

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

是否可以在不使用main()函数的情况下编写程序?

我在采访中不断提出这个问题:

不使用main()函数编写程序?

我的一个朋友向我展示了一些使用宏的代码,但我无法理解它.

所以问题是:

是不是真的可以编写和编译程序main()

c c++ program-entry-point compilation

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

C中的int main()vs void main()

在C中,我知道int main()返回一个int,其中void main()没有.除此之外,他们之间有区别吗?第一个好于第二个?

c int program-entry-point void

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

Scala中的主要方法

我编写了一个Scala类并main()在其中定义了该方法.它编译了,但是当我运行它时,我得到了NoSuchMethodError:main.在我看到的所有scala示例中,main方法是在一个对象中定义的.在Java中,我们在类中定义main方法.是否可以main()在Scala类中定义或者我们是否总是需要一个对象?

program-entry-point scala class

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