当前位置:首页 » 编程语言 » c语言中main不能被调用
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中main不能被调用

发布时间: 2022-11-05 07:24:56

① 在C++中,main()函数是否可以被自己调用,有什么要求吗具体说一下。

【1】任何一个C++程序都包含一个main函数,这是规定。main函数由系统直接调用,是程序执行的入口。这个是c++标准决定的,制定这个标准后,c++编译器才会以main函数作为入口,
(和c语言中一样)
【2】main函数与用户自己定义的函数都是各自独立的模块,即函数不能嵌套定义,通俗的说,你不能在一个函数的函数体内定义另一个函数,即使在main函数中也不行。但main函数可以对用户自己定义的函数进行调用(但main函数只能由系统调用)。用户自己定义多个函数时,这几个用户自己定义的函数之间都可以互相调用 。

② c语言 自己写了一个函数不能被调用

//你改变的只是子程序里的局部变量,所以你的主函数里是得不到结果的
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#defineMAX_LENGTH_NAME20

typedefcharNOM[20];

int**open(constchar*,int*,int*);

intmain(void)
{
intgrille_nbl=0,grille_nbc=0;
inti,j;
printf("%d%d ",grille_nbl,grille_nbc);

int**tab=NULL;
tab=open("1.txt",&grille_nbl,&grille_nbc);

printf("%d%d ",grille_nbl,grille_nbc);

for(i=0;i<=grille_nbl;i++)
{
for(j=0;j<=grille_nbc;j++)
{
printf("%d",tab[i][j]);
}
printf(" ");
}

if(tab)
{
free(tab[0]);
free(tab);
}
returnEXIT_SUCCESS;
}

int**open(constchar*nom_fichier,int*grille_nbl,int*grille_nbc)
{
inti,j;
FILE*fichier=NULL;
int**r=NULL;

fichier=fopen(nom_fichier,"rt");
if(fichier==NULL)
{
fprintf(stderr,"Erreur ");
returnNULL;
}
fscanf(fichier,"%d%d",grille_nbl,grille_nbc);


r=(int**)malloc(grille_nbl[0]*sizeof(int*));
if(r==NULL)returnNULL;
r[0]=(int*)malloc(grille_nbl[0]*grille_nbc[0]*sizeof(int));
if(r[0]==NULL)
{
free(r);
returnNULL;
}
for(i=1;i<grille_nbl[0];++i)
{
r[i]=r[i-1]+grille_nbc[0];
}

for(i=0;i<grille_nbl[0];++i)
{
for(j=0;j<grille_nbc[0];++j)
{
r[i][j]=0;
}
}

fclose(fichier);
returnr;
}

③ 关于C语言main函数的调用

在C语言中,main函数可被递归调用
在C++标准中,main函数不可以被递归调用

但是许多C++编译器对标准作出了扩展,使得main函数可以被递归调用。
可以用Visual C++做个实验
1)用/Tc编译器选项(使用C编译器),main可以递归调用
2)用/Tp(编译C++)和/Ze(启用语言扩展),main可以递归调用
3)用/Tp(编译C++)和/Za(禁用语言扩展),
main不可以递归调用

另外,根据我的经验,90%的C/C++书籍作者对C/C++并不是完全了解。只有看经典书籍才能在技术细节上没有错误或模糊。

④ C语言中,可不可以调用main函数

假如有一函数f, 没有参数, 则要这样调用:
f();
其中, f是函数f的函数名, 但对于编译器来讲, f是一个地址, 它指向了f函数代码段的开头部分.而()是一个运算符, 它非常类似于*, 但是*是取值的, 而()是让程序跳转到f处执行程序. 最后的那个分号就是标识着一个语句的结束

如果f有一个整型的参数, 那么需要这样调用:
f(1);
只是多了一个1, 这个1就是()运算符要复制到f函数的栈中了, 准确地说是复制到它的形参中.
如果f有多个参数, 则只需要在每个形参之间打上逗号:
f(1, 2, 3);
逗号只是用来起分隔作用.(由学区房拍卖提供)

⑤ C语言。普通函数与main函数不能相互调用对吗然后普通函数之间能相互调用,对吗相互调用的话那会不会

肯定不会无止境啊。。你调用函数的时候要开辟函数栈的,普通函数也不能调用main函数,main函数是函数的运行主线,调用其他函数的时候开辟函数栈,运行完毕返回到主函数中。

⑥ c语言中主函数可以被子函数调用吗 只限在C语言中

那是不可以的 主函数可以调用子函数 子函数也可以调用其他的子函数(即子函数之间可以相互调用) 但是子函数是绝对不能调用主函数的

⑦ C语言源程序中其他函数也能调用main()函数吗

一个main函数对应一个线程,对于操作系统而言,是可以多线程的,就好像你同时打开两个应用程序一样,而两个线程之间要实现数据交流则要通过共享内存或者管道什么的。所以简单的理解是一个程序只能有一个线程或main函数,一个main函数里可以调用其他进程或者函数,而对于操作系统而言,没有mian函数的概念,但是可以给每个线程分配cpu资源,各个线程同时运行,但不能相互调用,线程是相互独立的。只能通过共享机制实现互相通信。

⑧ C语言中不能被调用的函数是

不能人为调用的函数是main函数,main函数是由系统调用的

⑨ 在c语言中,由于main函数不能被任何函数调用,所以它不带参数。这句话对吗

错,main确实不被其他函数调用,但main函数是可以有参数的int main(argc,argv),这就是main函数的命令行参数。

⑩ 关于C语言main函数的调用

在C语言中,main函数可被递归调用
在C++标准中,main函数不可以被递归调用
但是许多C++编译器对标准作出了扩展,使得main函数可以被递归调用。
可以用Visual
C++做个实验
1)用/Tc编译器选项(使用C编译器),main可以递归调用
2)用/Tp(编译C++)和/Ze(启用语言扩展),main可以递归调用
3)用/Tp(编译C++)和/Za(禁用语言扩展),
main不可以递归调用
另外,根据我的经验,90%的C/C++书籍作者对C/C++并不是完全了解。只有看经典书籍才能在技术细节上没有错误或模糊。