J.M*_*.M. -2 c parameters syntax return-value void
我得到了一个包含几个声明如下的函数的大型C文件:
void function_a(void);
Run Code Online (Sandbox Code Playgroud)
这些函数写在主程序之上:
static void function_a(void) { .... }
Run Code Online (Sandbox Code Playgroud)
在主程序中,这些函数称为:
function_a();
Run Code Online (Sandbox Code Playgroud)
现在据我所知,声明为上面写的函数既不使用参数也不使用返回值.但是,在这些函数中,使用了变量和数组,这些变量和数组未在这些函数中定义,而是仅在主程序中定义.
这是非常正确的C语法吗?如果没有作为参数移交,那么函数如何从主程序访问数据?
此外,主程序使用变量,这些变量在它调用的函数中计算.
你能提供更多的背景吗?在C中,您无法从另一个函数访问变量,但您可以访问全局变量.
以下程序有效并将输出3,因为它i是一个全局变量,并且随处可见.
#include <stdio.h>
int i = 2;
void plusone() {
i = i + 1;
}
int main() {
plusone();
printf("i = %d\n", i);
}
Run Code Online (Sandbox Code Playgroud)
另一方面,下面的程序不会编译,因为它i是main()函数本地的,并且在其他地方是不可见的.
#include <stdio.h>
void plusone() {
i = i + 1;
}
int main() {
int i = 2;
plusone();
printf("i = %d\n", i);
}
Run Code Online (Sandbox Code Playgroud)
说,使用全局变量是一种不好的做法,应该避免.
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |