有如下代码:
//a.c
#include<stdio.h>
int main()
{
printf("Hello World\n");
return 100;
}
windows编译后生成a.exe,linux编译后生成a
//b.c for windows
#include<stdlib.h>
#include<stdio.h>
int windows()
{
return 100;
}
int main()
{
int i,j;
i=windows();
j=system("a.exe");
printf("i=%d j=%d\n",i,j);
return 0;
}
//b.c for ubantu
#include<stdlib.h>
#include<stdio.h>
int linuxx()
{
return 100;
}
int main()
{
int i,j;
i=linuxx();
j=system("./a");
printf("i=%d j=%d\n",i,j);
return 0;
}
windows编译后生成b.exe,ubantu生成b
在windows下运行b.exe
Hello World
i=100 j=100
在ubantu下运行b
Hello World
i=100 j=25600
说明主函数main的返回值受操作系统影响,linux下的返回值/windows下的返回值为0x100。而内部函数不受影响。