答案是:否
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供大廠企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為大廠眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
c語言中,變量和函數(shù)名稱不允許相同,比如你定義一個(gè)函數(shù)int a();那么你的main函數(shù)中,如果int a=a();則會(huì)報(bào)錯(cuò),這是c語言中非常討厭的一點(diǎn),當(dāng)然,反對(duì)者可能會(huì)說:“容易引起名稱混淆,導(dǎo)致不容易維護(hù)”,這是很牽強(qiáng)的說法,用現(xiàn)在流行的詞匯叫做:強(qiáng)行為c語言的缺點(diǎn)洗白,c語言的這個(gè)限制,極大程度的增加了初學(xué)者,尤其是自學(xué)者的學(xué)習(xí)難度,因?yàn)槌鯇W(xué)者不會(huì)考慮變量的含義,通常定義aa,bb,cc這樣更利于快速學(xué)習(xí),但是出來這個(gè)限制,并且不知情的情況下,甚至都不知道在網(wǎng)上如何搜索來解決這個(gè)小問題,所以個(gè)人覺得這是c的不友好之一
rename函數(shù)功能是給一個(gè)文件重命名,用該函數(shù)可以實(shí)現(xiàn)文件移動(dòng)功能,把一個(gè)文件的完整路徑的盤符改一下就實(shí)現(xiàn)了這個(gè)文件的移動(dòng)。具體參見下面的程序示例說明。
頭文件:在Visual C++6.0中用stdio.h或者io.h
用 法: int rename(char *oldname, char *newname);
程序例:
#include
int main(void)
{
char oldname[80], newname[80];
/* prompt for file to rename and new name */
printf("File to rename: ");
gets(oldname);
printf("New name: ");
gets(newname);
/* Rename the file */
if (rename(oldname, newname) == 0)
printf("Renamed %s to %s.\n", oldname, newname);
else
perror("rename");
return 0;
}
執(zhí)行過程:
File to rename: D:\\in.dat
New name: G:\\in.dat
Renamed D:\\in.dat to G:\\in.dat.
這樣就實(shí)現(xiàn)了in.dat從D盤移動(dòng)到G盤。
在unix或linux系統(tǒng)中:
#include
int rename(const char *oldname, const char *newname);
函數(shù)說明
(1) 如果oldname為一個(gè)文件而不是目錄,那么為該文件更名。在這種情況下,如果newname作為一個(gè)目錄已存在,則它不能重命名一個(gè)目錄。如果newname已存在,而且不是一個(gè)目錄,則先將其刪除然后將oldname更名為newname。對(duì)oldname所在目錄以及newname所在的目錄,調(diào)用進(jìn)程必須具有寫許可權(quán),因?yàn)閷⒏倪@兩個(gè)目錄。
(2) 如若oldname為一個(gè)目錄,那么為該目錄更名。如果newname已存在,則它必須是一個(gè)目錄,而且該目錄應(yīng)當(dāng)是空目錄(空目錄指的是該目錄中只有. 和.. 項(xiàng))。如果newname存在(而且是一個(gè)空目錄),則先將其刪除,然后將oldname更名為newname。另外,當(dāng)為一個(gè)目錄更名時(shí),newname不能包含oldname作為其路徑前綴。例如,不能將/usr更名為/usr/foo/testdir,因?yàn)槔厦郑?/usr/foo)是新名字的路徑前綴,因而不能將其刪除。
(3) 作為一個(gè)特例,如果oldname和newname引用同一文件,則函數(shù)不做任何更改而成功返回。
返回值 執(zhí)行成功則返回0,失敗返回-1,錯(cuò)誤原因存于errno
范例
#include
int main(int argc,char **argv)
{
if(argc 3)
{
printf("Usage: %s old_name new_name\n",argv[0]);
return -1;
}
printf("%s = %s\n", argv[1], argv[2]);
if(rename(argv[1], argv[2]) 0 )
printf("error!\n");
else
printf("ok!\n");
return 0;
}
#include stdio.h
int main(void)
{
char oldname[80], newname[80];
/* prompt for file to rename and new name */
printf( "File to rename: ");
gets(oldname);
printf( "New name: ");
gets(newname);
/* Rename the file */
if (rename(oldname, newname) == 0)
printf( "Renamed %s to %s.\n ", oldname, newname);
else
perror( "rename ");
return 0;
}
函數(shù)定義不可以嵌套的意思是:不可以在一個(gè)函數(shù)內(nèi)定義另一個(gè)函數(shù)例如voidfun(){voidfun1(){}}函數(shù)調(diào)用可以嵌套,函數(shù)調(diào)用只有函數(shù)名和參數(shù)fun()這叫調(diào)用例如voidfun(){fun1();}這樣是可以的