草庐IT

c++ - 用 int main(void) 编译失败; main(int argc, char *argv[]) 成功。为什么?

问题为什么编译具有intmain(void)main函数的程序与编译具有intmain(intargc,char*argv[])主函数,如果程序不使用命令行传递的参数?这个操作系统或编译器是特定的吗?我没有使用mingw和g++得到相同的结果(这很奇怪不是因为wingw是gcc的一个端口)。例子代码#include#include"SDL/SDL.h"intmain(void){return0;}编译命令g++test.cpp;#g++4.4.5i586-mingw32msvc-g++test.cpp;#mingw4.4.4错误(由第二个命令给出。)a(main.o):(.text+0

c++ - 解析参数到 main()

在C++中,是否存在用于解析main()函数参数的实用程序的完善、完整、开源的实现?我自己写的,我看到周围有很多其他人。但是我在想是否有更好的实现可用,它提供了相应可执行文件所期望的所有功能。 最佳答案 Boost提供了一个开源实现ProgramOptions. 关于c++-解析参数到main(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9943566/

c++ - 奇怪的段错误案例

我在C++程序中遇到了一个奇怪的段错误案例。我可以用一小段代码重现它,但不明白为什么会这样。这是代码:a.hpp:#pragmaonce#include#include"b.hpp"classA{public:explicitA();private:std::stringstr1_;Bb_;std::stringstr2_;};typedefboost::shared_ptrA_ptr;a.cpp#include"a.hpp"A::A(){}b.hpp#pragmaonce#includeclassB{public:B();private:std::stringstr1_;};b.cp

c++ - C++ 中的外部常量

我有一个名为abc.h的头文件,我想在其中定义一个带有外部链接的常量。因此它包含声明----------------abc.h------------------------externconstintONE=1;接下来,我有main.cpp,我想在其中使用ONE的值。因此,在将它用作之前,我在main.cpp中声明了一个----------------main.cpp--------------------externconstintONE;intmain(){cout我收到错误消息“ONE的多个定义”。我的问题是,我如何声明一个带有外部链接的常量,然后在不同的文件中使用它,这样常量

无法在 main 中访问在函数中初始化的 C++ 数组

我有一个用于在C++中初始化数组的函数。初始化后,main无法访问数组中的数据。不知道为什么。有帮助吗?voidtestArray(int*listPtr){listPtr=newint[2];listPtr[0]=0;listPtr[1]=1;}//endtestArrayvoidmain(){int*list;testArray(list);cout 最佳答案 这是因为指针是按值传递的。函数的参数被复制,函数的第一行用新表达式的结果替换指针的本地拷贝。返回main()的指针的原始拷贝不受此影响。您可以通过引用传递指针来“修复”此

c++ - 错误 LNK2019 未解析的外部符号 _WinMain@16 在函数 "int __cdecl invoke_main(void)"(?invoke_main@@YAHXZ) 中引用

这是我的剧本我不知道如何解决这个错误请帮我非常感谢floatangle=15;floatx,y,z;//forpolygonrotatevoiddisplay(){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//clearscreenanddepthbufferglLoadIdentity();glPushMatrix();glColor3f(1.0,0.0,0.0);glBegin(GL_POLYGON);glVertex2f(160.0,360.0);glVertex2f(300.0,360.0);glVertex2f(160.

c++ - scons - 编译后运行程序

我想在编译后直接运行构建的程序,这样我就可以用scons构建和启动我的程序。我认为这个SConstruct-File会在程序重建时启动它。main=Program("main",["main.cc"])test=Command(None,None,"./main>testoutput")Depends(test,main)每次我运行scons都会启动它main=Program("main",["main.cc"])test=Command(None,None,"./main>testoutput")Requires(test,main)但两者都不行,我的程序从未执行过。我做错了什么?

c++ - C++中 "main"线程的id

在C++中有没有办法获取“主”程序线程的ID?我看到std::this_thread::get_id()获取当前正在执行的线程的ID,但我需要main的ID,即原始程序线程。我没有看到任何功能来获取它。原因是我有一些非线程安全的内部函数,它们只能在应用程序的原始线程上调用,所以为了安全我想这样做:-assert(std::this_thread::get_id()==std::main_thread::get_id());但是当然没有执行此操作的功能,而且我看不到任何获取该信息的方法。 最佳答案 您可以在this_thread仍然是

c++ - 在 main() 消失之前初始化的值

无法理解奇怪的程序行为-希望有人能解释一下。虚拟.h:#ifndefDUMMY_H#defineDUMMY_H#includeclassDummy{intval;public:intInit(intnew_val){returnval=new_val;}intGet(){returnval;}Dummy():val(-1){std::cout标题.h:#include"dummy.h"externDummydummy;虚拟.cpp:#include"dummy.h"Dummydummy;主要.cpp:#include#include"header.h"intres1=dummy.Ini

c++ - 可以单独编译任何 .c 文件(也就是说,没有 main?)

我目前有一个“类库”.c文件(如下所示)。我对此有2个问题:如果我想看看它自己是否编译良好,我该怎么做?如果我尝试对它进行gcc,它总是会给出“nomain”错误,这是有道理的,但会引发一个问题,即知道给定的.c文件是否可以“隔离”编译。我是否可以安全地得出结论,如果编译器引发的唯一错误是“nomain”错误,那么我的文件没有问题?在这里单独编译.c文件的一个例子是确定哪些包含过多。在这样一个简单的文件中是否有必要用它的方法/结构声明定义一个header,然后在这样一个很小的​​.c文件中包含代码实现?#ifndefSEMAFOROS#defineSEMAFOROS#include#i