一个main函数对应一个线程,对于 *** 作系统而言,是可以多线程的,就好像你同时打开两个应用程序一样,而两个线程之间要实现数据交流则要通过共享内存或者管道什么的。所以简单的理解是一个程序只能有一个线程或main函数,一个main函数里可以调用其他进程或者函数,而对于 *** 作系统而言,没有mian函数的概念,但是可以给每个线程分配cpu资源,各个线程同时运行,但不能相互调用,线程是相互独立的。只能通过共享机制实现互相通信。
#include 函数声明: 主函数 函数定义 比如 #include void hello(void);//声明 int main() { hello();//调用 return 0; } void hello(void)//定义 { printf("hello"); }
在main函数中调用其中定义的变量,直接调用就可以了。
public class Test{
public static void main(String[] args){
int data = 15; //定义的局部变量。
mathod_a(data); //在静态方法中调用,你遇到的问题应该是这个吧。这里的方法必须是静态的。
B b = new B();
bmethod_b(data);//定义一个对象,在对象的方法中调用。
}
public static void method_a(int num){
Systemoutprintln("method_a调用main中的变量");
}
}
class B{
method_b(int num){
Systemoutprintln("method_b调用main中的变量");
}
}
假如有一函数f, 没有参数, 则要这样调用:
f();
其中, f是函数f的函数名, 但对于编译器来讲, f是一个地址, 它指向了f函数代码段的开头部分而()是一个运算符, 它非常类似于, 但是是取值的, 而()是让程序跳转到f处执行程序 最后的那个分号就是标识着一个语句的结束
如果f有一个整型的参数, 那么需要这样调用:
f(1);
只是多了一个1, 这个1就是()运算符要复制到f函数的栈中了, 准确地说是复制到它的形参中
如果f有多个参数, 则只需要在每个形参之间打上逗号:
f(1, 2, 3);
逗号只是用来起分隔作用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)