不用线程或进程,cpu是无法调用时间片来执行两个并行的程序的,只能顺序往下执行。
创新互联建站是一家专业提供武陵企业网站建设,专注与成都做网站、成都网站制作、H5场景定制、小程序制作等业务。10年已为武陵众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
不知道你用的是什么编译器,如果用的是VC的话,可以尝试下我的做法:
创建两个源代码文件:1.cpp和2.cpp
1.cpp中内容:
#includestdio.h
#include"2.cpp"/*采用包含命令调用2.cpp中的函数*/
int max(int x,int y)
{
return xy?x:y;
}
int main()
{
int a,b,m,n;
a=10;
b=30;
m=max(a,b);
n=min(a,b);
printf("%3d%3d\n",m,n);
return 0;
}
2.cpp中内容:
int min(int x,int y)
{
return xy?x:y;
}
把这两个源代码放到一个文件夹下,编译并运行1.cpp即可。注意,2.cpp中没有main函数,所以不能直接编译2.cpp。其实由于最终1.cpp和2.cpp要连接到一起形成一个可执行文件1.exe,所以2.cpp中也不能有main函数。
这种形参是值传递
而不是引用传递
所以实际上没有改变到外部的实参的值
你要传地址进去才行 exchange(int *a,int *b) 里面a,b都得改成*a,*b
调用是exchange(a,b);
首先,c中有且仅有一个主函数,所以第一步,你必须的把两个函数改成其他名字:
#include stdio.h
int function1()
{
int len=0;
int len2=0;
FILE* stream;
FILE* stream1;
FILE* stream2;
char buf[50];
char buf1[50];
char buf2[50];
char text[1024];
printf("input anfile path to open:");
scanf("%s",buf);
stream=fopen(buf,"r+");
fseek(stream,0,SEEK_END);
len=ftell(stream);
printf("the file %s length is %d!\n",buf,len);
len2 = len/2;
printf("intput 2 file name: \n");
scanf("%s%s",buf1,buf2);
fseek(stream,0,SEEK_SET);
stream1=fopen(buf1,"w+");
stream2=fopen(buf2,"w+");
fread(text,len2,1,stream);
fwrite(text,len2,1,stream1);
fread(text,len-len2,1,stream);
fwrite(text,len-len2,1,stream2);
fclose(stream);
fclose(stream1);
fclose(stream2);
return 0;
}
int function2()
{
int len=0;
int len2=0;
FILE* stream;
FILE* stream1;
char buf[50];
char buf1[50];
char text[1024];
printf("input anfile path to open:");
scanf("%s",buf);
stream=fopen(buf,"r+");
fseek(stream,0,SEEK_END);
printf("intput another file name: \n");
scanf("%s",buf1);
stream1=fopen(buf1,"r+");
fseek(stream1,0,SEEK_END);
len=ftell(stream1);
fseek(stream1,0,SEEK_SET);
fread(text,len,1,stream1);
fwrite(text,len,1,stream);
fclose(stream);
fclose(stream1);
remove(buf1);//remove the another file
return 0;
}
//第二部:如果有条件的调用它们的话,加上if语句或者switch语句,基本上都是这样,此外,你可以把function1 和function2放入一个头文件中,然后包含这个头文件亦行。
void main()
{
function1();
function2();
}
c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
//
定义一个不带返回值的函数
//
函数功能:输出形参的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定义一个带返回值的函数
//
函数功能:返回2个整数数的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}