gpt4 book ai didi

gcc - 使用 clang 与 gcc 编译嵌套函数

转载 作者:行者123 更新时间:2023-12-01 06:14:45 24 4
gpt4 key购买 nike

我有一个 c 文件,我可以使用 GCC 毫无问题地编译它,如下所示:

gcc foo.c

但是使用相同的文件时,我收到了使用 clang 在 main 中定义函数的错误:

clang foo.c

foo:230:1: error: function definition is not allowed here
{
^
foo.c:241:1: error: function definition is not allowed here
{
^
foo.c:253:1: error: function definition is not allowed here

这些错误实例是代码主要部分中新函数的定义。我想知道为什么 GCC 不为此烦恼而 clang 呢?

最佳答案

函数内定义的函数是对C语言的扩展,由gcc实现。这是默认启用的。如果你使 gcc 成为标准 C 编译器,如 -ansi -pedantic-std=C99 或类似的,它也会提示嵌套函数定义:

x.c: In function ‘main’:
x.c:8:5: warning: ISO C forbids nested functions [-Wpedantic]
int nested(void)
^

关于gcc - 使用 clang 与 gcc 编译嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43842531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com