相关疑难解决方法(0)


189
推荐指数
11
解决办法
17万
查看次数

关于'main(int argc,char*argv [])'

可能重复:
main()的参数是什么?
int argc,char*argv []是什么意思?

每个程序都从main(int argc, char *argv[])定义开始.

我不明白这意味着什么.如果我们在程序中不使用这些参数,有人可以解释为什么我们会使用这些参数,我会很高兴的吗?为什么不int main()呢:?

程序的名称是其中的一个元素,*argv[]并且argc是参数个数的计数*argv[]?发送到的其他参数是*argv[]什么?我们如何发送它们?

c argv argc

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

C的main()函数的有效签名是什么?

C中主要功能的有效签名究竟是什么?我知道:

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

还有其他有效的吗?

c signature entry-point language-lawyer function-prototypes

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

extern char**environ的定义在哪里?

我们可以在C中获取环境变量,如下所示:

extern char **environ;
int main(int argc, char *argv[])
{
    int count = 0;

    printf("\n");
    while(environ[count] != NULL)
   {
         printf("[%s] :: ", environ[count]);
         count++;
   }

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

但环境的定义在哪里?我在unistd.h中找不到.它是如何工作的?

c linux

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

主要功能有三个参数

我之前遇到过这样的函数:

int main(int argc, char **argv, char **argw){


}
Run Code Online (Sandbox Code Playgroud)

为什么需要三个参数,这实际上是如何工作的?

c

9
推荐指数
1
解决办法
1434
查看次数

C++ main()的第三个环境变量参数有什么用?

我已经明白这char **envp是第三个参数main,并且在下面的代码的帮助下,我能够看到它实际包含的内容.

int main(int argc, char *argv[], char *env[])
{
  int i;
  for (i=0 ; env[i] ; i++)
    std::cout << env[i] << std::endl;
  std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么(在什么情况下)程序员需要使用它?我发现了很多解释什么这个说法呢,但没有什么能告诉我在那里,这是通常使用的.试图了解这可能会使用哪种现实世界的情况.

c++ program-entry-point environment-variables

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

调用带有错误签名的main()函数

标准说:

5.1.2.2.1程序启动

程序启动时调用的函数名为main.该实现声明此函数没有原型.它应该使用返回类型int并且没有参数来定义:int main(void){/*...*/}或者有两个参数(这里称为argc和argv,尽管可以使用任何名称,如它们是声明它们的函数的本地函数):int main(int argc,char argv []){/ ...*/}或等价物; 10)或以某种其他实现定义的方式.

如果我写这个:

#include <stdio.h>

struct some_struct
{
    int i;
};

float main(struct some_struct s)
{
    printf("Why does this main get called?\n");
}
Run Code Online (Sandbox Code Playgroud)

实际上,正如我所见,它被任何原型调用,并且没有任何运行时错误.

为什么不禁止它?这没有理由吗?另外,如果签名错误,如何调用它?

我用过 gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2

c program-entry-point

5
推荐指数
1
解决办法
426
查看次数

envp 代表什么?

我想知道缩写envp代表什么,例如这里:

int main(int argc, char **argv, char **envp);
Run Code Online (Sandbox Code Playgroud)

我也想知道vinargv最初代表什么。是v为了“价值”吗?或者也许是“矢量”?

c c++ abbreviation argv

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

作业:为什么定义argv [2]?

当我运行这个没有任何输入的程序时,我得到了一个奇怪的字符串,用于我的argv [2].为什么不是argv [2]未定义?TERM_PROGRAM=Apple_T< - 这就是我得到的.我想知道这是否与在mac上运行它有关?

if(argv[2]) {
    sscanf(argv[2], "%lf", &argWind);
    sscanf(argv[2], "%20s",  str);
    sprintf(str2, "%lf", argWind);
    printf("String: %s, %lf", str, argWind);
    int len;
    len = strlen(str);
    str2[len] = '\0';

    if(strcmp(str, str2)){
        printf("\nError: you entered a non-numeric entry for wind speed\n");
        return 0;
    }
} 
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
178
查看次数