【发布时间】:2017-07-13 22:36:51
【问题描述】:
给了我一个包含多个函数的大型 C 文件,声明如下:
void function_a(void);
函数写在主程序上面:
static void function_a(void) { .... }
在主程序中,这些函数被称为:
function_a();
现在据我所知,上述声明的函数既不使用参数,也没有返回值。但是在这些函数中使用了变量和数组,这些变量和数组并未在这些函数中定义,而仅在主程序中定义。
这真的是正确的 C 语法吗?如果不作为参数传递,函数如何访问主程序中的数据?
此外,主程序使用变量,这些变量是在它调用的函数中计算的。
【问题讨论】:
-
它们是在主函数中定义的,还是在文件中定义的?
-
对不起,我刚刚编辑了。它们在主函数上方的文件中定义
-
请发一个完整的例子而不是片段。
-
你知道静态作用域的变量是什么吗?
-
如果变量定义在“上方”
main()和“上方”function_a()- 并且都在同一个文件中 - 那么可以从这两个函数访问变量。任何关于 C 的基础教科书都会告诉你这一点。
标签: c syntax parameters return-value void