在main()中定义一个函数

fr0*_*0ps 2 c conventions nested-function

出于好奇,main()在C中定义一个函数是否被认为是不好的做法?

我正在编写的当前程序的问题是我有20个指向结构内部main()的指针(指针,而不是结构本身,那些在其他文件中),我有一块需要的代码块用不同的参数调用几次,它必须能够修改任何指针.我发现的唯一解决方案(我是C中的新手)是在其中定义一个main()具有正确范围的函数来修改任何指针.

Ser*_* L. 5

嵌套函数(函数内的函数)是仅GNU扩展,不是任何常规C标准的一部分.任何其他编译器都无法编译它.由于这个原因,我强烈反对使用嵌套函数.

在外面声明你的结构和功能.然后,您可以始终将指向数据结构的指针传递给您的函数.

struct s {...};

void foo(struct s *, ...);

int main() {

  struct s mystruct;
  foo(&mystruct, ...);

}
Run Code Online (Sandbox Code Playgroud)


Ano*_*use 5

GCC允许它,但它是特定于该编译器的非标准扩展 - 因此您的代码不会在任何其他编译器上编译