相关疑难解决方法(0)

在GCC/G ++编译器中使用-pedantic的目的是什么?

这张便条说:

-ansi:告诉编译器实现ANSI语言选项.这会关闭GCC的某些与ANSI标准不兼容的"功能".

-pedantic:与-ansi此结合使用,这告诉编译器严格遵守ANSI标准,拒绝任何不符合的代码.

首先要做的事情:

  • GCC/G ++编译器的选项-pedantic-ansi选项的目的是什么(我无法理解上面的描述)?
  • 谁能告诉我使用这两个选项的合适情况?
  • 我应该什么时候使用它们?
  • 它们重要吗?

c c++ gcc g++

127
推荐指数
6
解决办法
10万
查看次数

int main()和int main(void)之间的区别?

以下是什么意思:

int main(void) {...} 
Run Code Online (Sandbox Code Playgroud)

VS

int main() {...}
Run Code Online (Sandbox Code Playgroud)

我认为这int main() {...}意味着main不接收任何参数(来自命令行),但是:

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

确实.

但这int main(void) {...} 意味着什么?什么是无效主张?

我看过这里,但这是一个不同的问题.

c program-entry-point void

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

C 中不带参数的函数

    \n
  1. 我知道 \xe2\x80\x9c函数声明符中的空列表不是该函数定义的一部分,指定不提供有关参数数量或类型的信息\xe2\x80\x9e [1]

    \n
    // No information about the parameters is supplied.\nint foo();\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 我知道 \xe2\x80\x9c函数声明符中的空列表是该函数定义的一部分,指定该函数没有参数\xe2\x80\x9e [2]

    \n
    // In this case the foo() function has no parameters.\nint foo()\n{\n    // ...\n}\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
  5. 我知道 \xe2\x80\x9c类型的未命名参数的特殊情况void作为列表中唯一的项目指定该函数没有参数\xe2\x80\x9e [3]

    \n
    // foo() has no parameters.\nint foo(void);\n\n// bar() has no parameters.\nint bar(void)\n{\n    // ...\n};\n
    Run Code Online (Sandbox Code Playgroud)\n
  6. \n
\n

所以这里有一些问题:

\n
    \n
  1. 合法吗int main() { /* ... …

c signature language-lawyer function-prototypes

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

局部静态变量如何在方法中工作?

下面是我的代码:

//main.c

int f()
{
    static int x = 0;
    x += 1;
    return x;
}

int main()
{
   f();
   printf("%d", f());
}
Run Code Online (Sandbox Code Playgroud)

并且输出是2

我知道静态变量会保持状态,但是由于我调用了f()两次,每次x都先设置为 0 ( static int x = 0;),然后加 1,那么1无论我调用多少次,输出都应该是f()

c static function

4
推荐指数
1
解决办法
124
查看次数

在int main(void)冗余中不是void吗?

我已经明确指出C99标准文件

6.7.5.3.14标识符列表仅声明函数参数的标识符.函数声明符中的空列表是该函数定义的一部分,指定该函数没有参数.函数声明符中的空列表不是该函数定义的一部分,它指定不提供有关参数数量或类型的信息.

我从那句话中解释的是,void在函数定义中写入是多余的.我弄错了吗?

c program-entry-point

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