主要方法与教程中的方法不同

时间:2013-12-26 14:25:23

标签: c++ visual-c++ main

所以我开始使用c ++(我试图用新语言拓宽思路)但是我遇到了一个让我感到困惑的问题,而不是我想的那样...

使用Visual Studio Express 2012,我用C ++创建了一个控制台win32应用程序,这是我的主要方法:

// TestApp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

然而,由于我对c ++一无所知,我在网上搜索了一些内容,所有这些都以不同的方式设置了declerations

#include <iostream>

using namespace std;

int main()
{
  cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
  cin.get();
}

// my first program in C++
#include <iostream>

int main()
{
  std::cout << "Hello World!";
}

我尝试输入&#34; std :: cout&#34;,但它不会接受它, 有人可以澄清为什么和差异的重要性?

3 个答案:

答案 0 :(得分:0)

主方法可以使用或不使用参数进行定义。这完全取决于您使用申请的目的。

看看这个:https://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fmainf.htm

同样对于您的程序,您需要具有返回值

// my first program in C++
#include <iostream>

int main()
{
  std::cout << "Hello World!";
  return 0;
}

答案 1 :(得分:0)

int _tmain(int argc, _TCHAR* argv[])

是(至少我认为是这样)一个仅限Windows的库和编译器,取决于声明主函数。

绝对没错,就是这样声明主要:

int main(int argc, char const *argv[])
{
    //do something
    return 0;
}

或者像这样:

int main()
{
    //do something
    return 0;
}

这绝对是正确的C ++,你可以普遍使用它。

答案 2 :(得分:0)

C ++程序可能有两个开头之一:

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

        int wmain(int argc, wchar_t *argv[])

其中第一个获取其参数(argv)为ANSI字符,而第二个获取“宽”字符 - 通常为UTF-16或UTF-32,具体取决于平台。

Microsoft定义了一个框架,允许您创建可以使用ANSI或宽字符编译的代码。

        int _tmain(int argc, TCHAR *argv[])

在幕后,他们有类似的东西:

        #if defined UNICODE
            #define _tmain wmain
            #define TCHAR wchar_t
        #else
            #define _tmain main
            #define TCHAR char
        #endif

他们还有辅助函数,如_tprintf()_tcscpy()

注意:正如其他人指出的那样,argc和argv参数是可选的,所以你也可以拥有

        int main()

        int wmain()

和(对于Microsoft和兼容的编译器)

        int _tmain()

另请注意,虽然_tmain()不是严格可移植的,但如果您想要移植到其他平台,则可以轻松创建自己的#define宏。