查看main函数的返回值 echo %ERRORLEVEL%

#include "stdio.h"
int main(void)
{
    printf("I love you.");
    return 0;
}

//在命令行界面输入
echo %ERRORLEVEL%

命令提示符连续运行两个程序 a&&b

&& 的含义是:如果 && 前面的程序正常退出(main函数返回0),则继续执行 && 后面的程序,否则不执行。如果a的main函数返回非0值,b就不会运行。

main()函数的参数

这两个参数,一个是int类型,一个是字符串类型。第一个参数是命令行中的字符串数。按照惯例(但不是必须的),这个int参数被称为argc(argument count)。第二个参数是一个指向字符串的指针数组。命令行中的每个字符串被存储到内存中,并且分配一个指针指向它。按照惯例,这个指针数组被称为argv(argument value)。一般情况下,把程序本身的名字赋值给argv[0],接着,把最后的第一个字符串赋给argv[1] 。

//c.c
#include "stdio.h"
int main(int argc, char *argv[])
{
    int count;
    printf("The command line has %d arguments:", argc - 1);
    for(count = 1; count < argc ; count++)
        printf("%d: %s", count, argv[count] );
    return 0;
}

//命令行指令,系统使用空格把各个字符串格开,也可以使用双引号分割。
//argc的值,也即是参数的个数,程序在运行时会自动统计,不必我们操心。
c I love you 

argv[0]  ------>    c(程序名)

argv[1]  ------>    I

argv[2]  ------>    love

argv[3]  ------>    you

main函数标准定义

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

main函数Microsoft扩展定义

//unicode字符串
int wmain();
int wmain(int argc, wchar_t *argv[]);

//环境变量参数,envp字符串数组没有数量参数,最后一个数组元素为NULL
int main(int argc, char* argv[], char* envp[]);
int wmain(int argc, wchar_t* argv[], wchar_t* envp[]);

#include <iostream>
#include <string.h>

using namespace std;
int main( int argc, char *argv[], char *envp[] )
{
    bool numberLines = false;    // Default is no line numbers.

    // If /n is passed to the .exe, display numbered listing
    // of environment variables.
    if ( (argc == 2) && _stricmp( argv[1], "/n" ) == 0 )
         numberLines = true;

    // Walk through list of strings until a NULL is encountered.
    for ( int i = 0; envp[i] != NULL; ++i )
    {
        if ( numberLines )
            cout << i << ": "; // Prefix with numbers if /n specified
        cout << envp[i] << "\n";
    }
}

//environment output result:
AWE_DIR=C:\Program Files (x86)\Khrona LLC\Awesomium SDK\1.6.6\
CD_BUILDUPDATE=0
CD_OEM=ABB

_tmain宏

当定义了_UNICODE时,代表wmain,当没有定义时,代表main。所有的_t开头的宏都有类似功能,当函数开头为_t时,如果没有定义_UNICODE宏,就代表该函数为窄字节,当定义了_UNICODE宏时,就代表函数为unicode宽字节。

WinMain

当创建Windows程序时,它的入口函数为WinMain,需要设置Linker -> System -> SubSystem = Windows, 此时即使在程序中创建一个main函数,也不会被调用,因为此时入口函数是WinMain。

日志文件夹