當前位置:首頁 » 編程語言 » 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++並不是完全了解。只有看經典書籍才能在技術細節上沒有錯誤或模糊。