構(gòu)建函數(shù)時(shí),小括號(hào)中的參數(shù)列表中的內(nèi)容一般是指該函數(shù)所依賴的且無他不能工作的參數(shù)。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比濟(jì)源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式濟(jì)源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋濟(jì)源地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
如,我們創(chuàng)建一個(gè)函數(shù),功能是求兩個(gè)數(shù)和。
int?add(int?a,?int?b)?
{
int?sum?=?a?+?b;
return?sum;
}
此函數(shù)中,sum就是問題中所說的大括號(hào)內(nèi)的參數(shù)。a, b就是形參列表的參數(shù)。
如果外界沒有將參數(shù) a, b 傳入這個(gè)函數(shù),則這個(gè)函數(shù)就不知道他要加什么,所以無法工作。
大括號(hào)內(nèi)的內(nèi)容則是非必要的。我們當(dāng)然也可以為了省事寫成
int?add(int?a,?int?b)?
{
return?a?+?b;
}
這樣,大括號(hào)里面的參數(shù)就可以省去。如果想要了解更深層的作用域問題請(qǐng)追問。
函數(shù)功能:該函數(shù)創(chuàng)建、顯示、和操作一個(gè)消息框。消息框含有應(yīng)用程序定義的消息和標(biāo)題,加上預(yù)定義圖標(biāo)與Push(下按)按鈕的任何組合。
函數(shù)原型:int MessageBox(HWND hWnd,LPCTSTR IpCaption,UINT UType);
參數(shù):
hWnd:標(biāo)識(shí)將被創(chuàng)建的消息框的擁有窗口。如果此參數(shù)為NULL,則消息框沒有擁有窗口。
IpText:指向一個(gè)以NULL結(jié)尾的、含有將被顯示的消息的字符串的指針。
IpCaption:指向一個(gè)以NULL結(jié)尾的、用于對(duì)話框標(biāo)題的字符串的指針。
uType:指定一個(gè)決定對(duì)話框的內(nèi)容和行為的位標(biāo)志集。此參數(shù)可以為下列標(biāo)志組中標(biāo)志的組合。
指定下列標(biāo)志中的一個(gè)來顯示消息框中的按鈕,標(biāo)志的含義如下。
MB_ABORTRETRYIGNORE:消息框含有三個(gè)按鈕:Abort,Retry和Ignore。
MB_OK:消息框含有一個(gè)按鈕:OK。這是缺省值。
MB_OKCANCEL:消息框含有兩個(gè)按鈕:OK和Cancel。
MB_RETRYCANCEL:消息框含有兩個(gè)按鈕:Retry和Cancel。
MB_YESNO:消息框含有兩個(gè)按鈕:Yes和No。
MB_YESNOCANCEL:消息框含有三個(gè)按鈕:Yes,No和Cancel。
指定下列標(biāo)志中的一個(gè)來顯示消息框中的圖標(biāo):標(biāo)志的含義如下。
MB_ICONEXCLAMATION:
MB_ICONWARNING:一個(gè)驚嘆號(hào)出現(xiàn)在消息框。
MB_ICONINFORMATION:
MB_ICONASTERISK:一個(gè)圓圈中小寫字母i組成的圖標(biāo)出現(xiàn)在消息框。
MB_ICONOUESTION:一個(gè)問題標(biāo)記圖標(biāo)出現(xiàn)在消息框。
MB_ICONSTOP:
MB_ICONERROR:
MM_ICONHAND:一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框。
指定下列標(biāo)志中的一個(gè)來顯不缺省的按鈕:標(biāo)志的含義如下。
MB_DEFBUTTON1:第一個(gè)按鈕為缺省按鈕。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4沒有被指定,則MB_DEFBUTTON1為缺省值。
MB_DEFSUTTON2;第二個(gè)按鈕為缺省按鈕。
MB_DEFBUTTON3:第三個(gè)按鈕為缺省按鈕。
MB_DEFBUTTON4:第四個(gè)按鈕為缺省按鈕。
指定下列標(biāo)志中的一個(gè)來顯示對(duì)話框的形態(tài):標(biāo)志的含義如卜。
MB_APPLMODAL:在hwnd參數(shù)標(biāo)識(shí)的窗口中繼續(xù)工作以前,用戶一定響應(yīng)消息框。但是,用戶可以移動(dòng)到其他線程的窗口且在這些窗口中工作。根據(jù)應(yīng)用程序中窗口的層次機(jī)構(gòu),用戶則以移動(dòng)到線程內(nèi)的其他窗口。所有母消息框的子窗口自動(dòng)地失效,但是彈出窗口不是這樣。如果既沒有指定MB_SYSTEMMODAL也沒有指定MB_TASKMOOAL,則MB_APPLMODAL為缺省的。
MB_SYSTEMMODAL:除了消息框有WB_EX_TOPMOST類型,MB_APPLMODAL和WS_EX_TOPMOST一樣。用系統(tǒng)模態(tài)消息框來改變各種各樣的用戶,主要的損壞錯(cuò)誤需要立即注意(例如,內(nèi)存溢出)。如果不是那些與hwnd聯(lián)系的窗口,此標(biāo)志對(duì)用戶對(duì)窗口的相互聯(lián)系沒有影響。
MB_TASKMODAL:如果參數(shù)hwnd為NULL,除了所有屬于當(dāng)前線程高層次的窗口足失效的,MB_TASKMODALL和MB_ApPLMODAL一樣。當(dāng)調(diào)用應(yīng)用程序或庫沒有一個(gè)可以得到的窗口句柄時(shí),使用此標(biāo)志。但仍需要阻止到調(diào)用應(yīng)用程序甲其他窗口的輸入而不是擱置其他線程。
另外,可以指定下列標(biāo)志。
MB_DEFAULT_DESKTOP_ONLy:接收輸入的當(dāng)前桌面一定是一個(gè)缺省桌面。否則,函數(shù)調(diào)用失敗。缺省桌面是一個(gè)在用戶已經(jīng)紀(jì)錄且以后應(yīng)用程序在此上面運(yùn)行的桌面。
MB_HELP:把一個(gè)Help按鈕增加到消息框。選擇Help按鈕或按F1產(chǎn)生一個(gè)Help事件。
MB_RIGHT:文本為右調(diào)整。
MB_RTLREADING:用在Hebrew和Arabic系統(tǒng)中從右到左的順序顯示消息和大寫文本。
MB_SETFOREGROUND:消息框變?yōu)榍熬按翱凇T趦?nèi)部系統(tǒng)為消息個(gè)調(diào)用SetForegrundWindow函數(shù)。
MB_TOPMOSI:消息框用WS_EX_TOPMOST窗口類型來創(chuàng)建MB_SERVICE_NOTIFICATION。
Windows NT:調(diào)用程序是一個(gè)通知事件的用戶的服務(wù)程序。函數(shù)在當(dāng)前活動(dòng)桌面上顯示一個(gè)消息框,即使沒有用戶登記到計(jì)算機(jī)。
如果設(shè)置了此參數(shù),則hwnd參數(shù)一定為NULL。所以消息框可以出現(xiàn)在一個(gè)桌面上而不是桌面響應(yīng)參數(shù)hwnd。
對(duì)于Windows NT 4.0,MB_SERVICE_NOTIFICATION的值己經(jīng)改變。對(duì)于舊的和新的值,請(qǐng)參見WINUSER。
Windows NT 4.O通過把舊值映射到MessageBox和MessageBoxEx執(zhí)行中的新值,為先存在的服務(wù)程序提供逆兼容。此映射只為有了版本數(shù)目的可執(zhí)行程序而做。
為了建立一個(gè)用MB_SERVICE_NOTIFICATION的服務(wù)器,且可以在Windows NT 3.X和Window NT 4.0上執(zhí)行,可有兩種選擇。在連接時(shí)間,指定一個(gè)版本數(shù)目小于4.0的版本,或在連接時(shí)間,指定一個(gè)4.0版本。在運(yùn)行時(shí)間,用函數(shù)GetVersionEx來檢測系統(tǒng)版本,然后在Windows NT 3.X上用MB_SERVICE_NOTIFICATION_NT 3.x來運(yùn)行和在Windows NT 4.0上用MB_SERVICE_NOTIFICAION來運(yùn)行。MB_SERVCE_NOTIFICATION_NT3.x(WindowNT)此值響應(yīng)于為WindowNT3.51的MB_SERVICE_NOTIFICAION
定義的值。
返回值:如果沒有足夠的內(nèi)存來創(chuàng)建消息框,則返回值為零。如果函數(shù)調(diào)用成功,則返回值為下列對(duì)話框返回的菜單項(xiàng)目值中的一個(gè):
IDABORT:Abort 按鈕被選中。IDCANCEL:Cancel按鈕被選中。IDIGNORE:Ignore按鈕被選中。
IDNO:NO按鈕被選中。IDOK:OK按鈕被選中。IDRETRY:RETRY按鈕被選中。
IDYES:YES按鈕被選中。
如果一個(gè)消息框有一個(gè)Cancel按鈕,且如果Esc鍵被按下或Cancel鍵被選擇,則函數(shù)返回IDCANCEL值。如果消息框沒有Cancel按鈕,則按Esc鍵沒有作用。
備注:當(dāng)創(chuàng)建一個(gè)系統(tǒng)模態(tài)消息框來表示系統(tǒng)在內(nèi)存的低端中時(shí),由lpTeXt和lpCaption參數(shù)指向的字符串不應(yīng)該從一個(gè)資源文件中取出,因?yàn)樵噲D裝載此資源可能導(dǎo)致失敗。
當(dāng)一個(gè)應(yīng)用程序調(diào)用MessageBox,且為uType參數(shù)指定MB_ICONHAND和MB_SYSTEMMODAL標(biāo)志時(shí),系統(tǒng)不管可用內(nèi)存為多少,直接顯示結(jié)果消息框。當(dāng)這些標(biāo)志被指定,系統(tǒng)把消息框文本的長度局限于三行。系統(tǒng)不能自動(dòng)截?cái)嘁畹较⒖虻男校窍⒆址欢ê谢剀嚀Q行,以在合適的位置換行。
如果在對(duì)話框出現(xiàn)的的同時(shí)創(chuàng)建了消息框,則可使用對(duì)話框的句柄作為hwnd參數(shù),hwnd參數(shù)不應(yīng)該標(biāo)識(shí)一個(gè)子窗口,例如對(duì)話框中的一個(gè)控制。
Windows 95:系統(tǒng)可以支持最大達(dá)16364個(gè)窗口句柄。
Windows CE:Windows CE 不支持uType參數(shù)的下列值:
MB_STSTEMMODAL;MB_TASKMODAL;MB_HELP;MB_RTLREADING;MB_DEFAULT_DESKTOP_ONLY;
MB_SERVICE_NOTIFICATION;MB_USERICON。
不支持下列返回值:IDCLOSE;IDHELP。
速查:Windows:3.1及以上版本:Windows:95及以上版本;Windows:1.0及以上版本;頭文件:Winuser.h;庫文件:USer32.lib;URicode:在Windows NT上實(shí)現(xiàn)為Unicode和ANSI兩種版本。
#include?stdio.h
void?main(int?argc,char?*argv[])?//命令行參數(shù)
{
int?ch;//定義文件類型指針
FILE?*fp;//判斷命令行是否正確
if(argc!=2)
{
printf("Error?format,Usage:?display?filename1\n");
return;?//鍵入了錯(cuò)誤的命令行,結(jié)束程序的執(zhí)行
}
//按讀方式打開由argv[1]指出的文件
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("The?file?%s?can?not?be?opened.\n",argv[1]);//打開操作不成功
return;//結(jié)束程序的執(zhí)行
}
//成功打開了argv[1]所指文件
ch=fgetc(fp);?//從fp所指文件的當(dāng)前指針位置讀取一個(gè)字符
while(ch!=EOF)?//判斷剛讀取的字符是否是文件結(jié)束符
{
putchar(ch);?//若不是結(jié)束符,將它輸出到屏幕上顯示
ch=fgetc(fp);?//繼續(xù)從fp所指文件中讀取下一個(gè)字符
}?//完成將fp所指文件的內(nèi)容輸出到屏幕上顯示
fclose(fp);?//關(guān)閉fp所指文件
}
C語言可以通過宏,在你需要的位置宏展開出一個(gè)新的函數(shù)。
例如:
#define XXX(funcname) \
int funcname (int arg1, int arg2) \
{ return arg1 + arg2; }
但這也是編譯期就決定好了的,也不能實(shí)現(xiàn)運(yùn)行期動(dòng)態(tài)創(chuàng)建。
#includestdio.h
#define MAXSIZE 100
//自定義類型
typedef struct list
{
char data[MAXSIZE];
int listsize;
int length;
}SQLIST;
int CreatSL(SQLIST *p)//生成順序表
{
int i=0;
char ch;
p-listsize=sizeof(SQLIST);
printf("請(qǐng)輸入數(shù)據(jù),最大不超過%d個(gè)字符\n",MAXSIZE-1);
while((ch=getchar())!='\n')
{
p-data[i]=ch;
i++;
if(iMAXSIZE-1)
{
p-length=MAXSIZE-1;
printf("輸入字符超過最大限制,后面字符截取掉.\n");
return 0;
}
}
p-length=i;
return 1;
}
void PrintSL(SQLIST s)//打印順序表
{
int i;
for(i=0;is.length;i++)
printf("%c",s.data[i]);
printf("\n");
}
void PrintSL1(SQLIST s)//逆向打印順序表
{
int i;
for(i=s.length-1;i=0;i--)
printf("%c",s.data[i]);
printf("\n");
}
void main()
{
SQLIST s,*p;
p=s;
CreatSL(p);
printf("打印順序表:\n");
//printf("%d,%d\n",s.listsize,s.length);
PrintSL(s);
printf("逆向打印順序表:\n");
PrintSL1(s);
}
網(wǎng)站欄目:c語言創(chuàng)建和顯示函數(shù) c語言創(chuàng)建和顯示函數(shù)的關(guān)系
鏈接分享:http://chinadenli.net/article26/doopgjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站營銷、外貿(mào)建站、服務(wù)器托管、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)