亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 學c51的基礎 12《 函 數 》.txt

?? 單片機的c51用法,基礎篇,誰用的著誰下載
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
函       數

    C程序是由一組或是變量或是函數的外部對象組成的。函數是一個自我包含的完成一定相關功能的執行代碼段。我們可以把函數
看成一個"黑盒子", 你只要將數據送進去就能得到結果, 而函數內部究竟是如何工作的的, 外部程序是不知道的。外部程序所知道
的僅限于輸入給函數什么以及函數輸出什么。函數提供了編制程序的手段, 使之容易讀、寫、理解、排除錯誤、修改和維護。
    C程序中函數的數目實際上是不限的, 如果說有什么限制的話, 那就是, 一個C程序中必須至少有一個函數, 而且其中必須有一
個并且僅有一個以main為名, 這個函數稱為主函數, 整個程序從這個主函數開始執行。
    C 語言程序鼓勵和提倡人們把一個大問題劃分成一個個子問題, 對應于解決一個子問題編制一個函數, 因此, C 語言程序一般
是由大量的小函數而不是由少量大函數構成的, 即所謂 "小函數構成大程序"。這樣的好處是讓各部分相互充分獨立, 并且任務單
一。因而這些充分獨立的小模塊也可以作為一種固定規格的小"構件", 用來構成新的大程序。
    C語言的一個主要特點是可以建立庫函數。Turbo C2.0提供的運行程序庫有400多個函數, 每個函數都完成一定的功能, 可由用
戶隨意調用。這些函數總的分為輸入輸出函數、數學函數、字符串和內存函數、與BIOS和DOS有關的函數、 字符屏幕和圖形功能函
數、過程控制函數、目錄函數等。對這些庫函數應熟悉其功能, 只有這樣才可省去很多不必要的工作。
    本教程后半部分專門介紹Turbo C2.0的庫函數, 并對每個函數都給出例程, 讀者可以將自已需要的部分以塊的方式定義, 然后
將此塊寫入文件, 這樣就可以在進入Turbo C2.0集成開發環境后, 直接調用此程序, 連接, 運行, 觀察結果, 以加深對該函數的理
解。
    用戶編制Turbo C語言源程序, 就是利用Turbo C的庫函數。可以把所有使用的庫函數放在一個龐大的主函數里, 也可以按不同
功能設計成一個個用戶函數而被其它函數調用。Turbo C2.0建議用戶使用后者, 當用戶編制了一些較常用的函數時, 只要將其存在
函數庫里, 在以后的編程中可被方便的調用而不需要再去編譯它們。連接時將會自動從相應的庫中裝配成所需程序。

    1. 函數的說明與定義
    Turbo C2.0中所有函數與變量一樣在使用之前必須說明。所謂說明是指說明函數是什么類型的函數, 一般庫函數的說明都包含
在相應的頭文件<*.h>中, 例如標準輸入輸出函數包含在stdio.h中, 非標準輸入輸出函數包含在io.h中,  以后在使用庫函數時必須
先知道該函數包含在什么樣的頭文件中, 在程序的開頭用#include <*.h>或#include"*.h"說明。只有這樣程序在編譯, 連接時
Turbo C 才知道它是提供的庫函數, 否則, 將認為是用戶自己編寫的函數而不能裝配。

    1.1 函數說明

    1. 經典方式
         其形式為:  函數類型   函數名();
    2. ANSI 規定方式
         其形式為:  函數類型  函數名(數據類型  形式參數,  數據類型  形式參數, ......);
    其中: 函數類型是該函數返回值的數據類型, 可以是以前介紹的整型(int), 長整型(long), 字符型(char), 單浮點型(float),
雙浮點型(double)以及無值型(void), 也可以是指針, 包括結構指針。無值型表示函數沒有返回值。
    函數名為Turbo C2.0的標識符, 小括號中的內容為該函數的形式參數說明。可以只有數據類型而沒有形式參數, 也可以兩者都
有。對于經典的函數說明沒有參數信息。如:
     int putlll(int x,int y,int z,int color,char *p)/*說明一個整型函數*/
     char *name(void);               /*說明一個字符串指什函數*/
     void student(int n, char *str); /*說明一個不返回值的函數*/
     float calculate();              /*說明一個浮點型函數*/
    注意: 如果一個函數沒有說明就被調用, 編譯程序并不認為出錯, 而將此函數默認為整型(int)函數。因此當一個函數返回其它
類型, 又沒有事先說明,  編譯時將會出錯。

    1.2 函數定義

    函數定義就是確定該函數完成什么功能以及怎么運行, 相當于其它語言的一個子程序。Turbo C2.0對函數的定義采用ANSI規定
的方式。即:
       函數類型  函數名(數據類型形式參數; 數據類型 形式參數...)
       {
          函數體;
       }
    其中函數類型和形式參數的數據類型為Turbo C2.0的基本數據類型。函數體為Turbo C2.0提供的庫函數和語句以及其它用戶自
定義函數調用語句的組合, 并包括在一對花括號"{"和"}"中。
    需要指出的是一個程序必須有一個主函數, 其它用戶定義的子函數可以是任意多個, 這些函數的位置也沒有什么限制, 可以在
main()函數前,  也可以在其后。Turbo C2.0將所有函數都被認為是全局性的。而且是外部的, 即可以被另一個文件中的任何一個函
數調用。

    2 函數的調用

    2.1  函數的簡單調用
    Turbo C2.0調用函數時直接使用函數名和實參的方法, 也就是將要賦給被調用函數的參量, 按該函數說明的參數形式傳遞過去,
然后進入子函數運行, 運行結束后再按子函數規定的數據類型返回一個值給調用函數。使用Turbo C2.0的庫函數就是函數簡單調用
的方法。舉例說明如下:
    例1:
     #include<stdio.h>
     int maxmum(int x, int y, int z);   /*說明一個用戶自定義函數*/
     int main()
     {
          int i, j, k;
          printf("i, j, k=?\n");
          scanf("%4d%4d%4d", &i, &j, &k);
          maxmum(i, j, k);
          getch();
          return 0;
     }

     maxmum(int x, int y, int z)
     {
          int max;
          max=x>y?x:y;
          max=max>z?max:z;
          printf("The maxmum value of the 3 data is %d\n", max);
     }

    2.2 函數參數傳遞

    一、調用函數向被調用函數以形式參數傳遞
    用戶編寫的函數一般在對其說明和定義時就規定了形式參數類型, 因此調用這些函數時參量必須與子函數中形式參數的數據類
型、順序和數量完全相同, 否則在調用中將會出錯, 得到意想不到的結果。
    注意:
    當數組作為形式參數向被調用函數傳遞時, 只傳遞數組的地址, 而不是將整個數組元素都復制到函數中去, 即用數組名作為實
參調用子函數, 調用時指向該數組第一個元素的指針就被傳遞給子函數。因為在Turbo C2.0中, 沒有下標的數組名就是一個指向該
數組第一個元素的指針。當然數組變量的類型在兩個函數中必須相同。
    用下述方法傳遞數組形參。
    例2:
     #include<stdio.h>
     void disp(int *n);
     int main()
     {
          int m[10], i;
          for(i=0; i<10; i++)
            m[i]=i;
          disp(m);       /*按指針方式傳遞數組*/
          getch();
          return 0;
     }
     void disp(int *n)
     {
          int j;
          for(j=0; j<10; j++)
            printf("%3d", *(n++));
          printf("\n");
     }
    另外, 當傳遞數組的某個元素時, 數組元素作為實參, 此時按使用其它簡單變量的方法使用數組元素。例2按傳遞數組元素的方
法傳遞時變為:
     #include<stdio.h>
     void disp(int n);
     int main()
     {
          int m[10], i;
          for(i=0; i<10; i++){
            m[i]=i;
            disp(m[i]);  /*逐個傳遞數組元素*/
          }
          getch();
          return 0;
     }
     void disp(int n)
     {
          printf("%3d\t");
     }
這時一次只傳遞了數組的一個元素。

    二、被調用函數向調用函數返回值

    一般使用return語句由被調用函數向調用函數返回值, 該語句有下列用途:
    1. 它能立即從所在的函數中退出, 返回到調用它的程序中去。
    2. 返回一個值給調用它的函數。
    有兩種方法可以終止子函數運行并返回到調用它的函數中: 一是執行到函數的最后一條語句后返回; 一是執行到語句return時
返回。前者當子函數執行完后僅返回給調用函數一個0。若要返回一個值, 就必須用return語句。只需在return 語句中指定返回的
值即可。例1返回最大值時變為:
     例3:
     #include<stdio.h>
     int maxmum(int x, int y, int z);   /*說明一個用戶自定義函數*/
     int main()
     {
          int i, j, k, max;
          printf("i, j, k=?\n");
          scanf("%4d%4d%4d", &i, &j, &k);
          max=maxmum(i, j, k);          /*調用子函數, 并將返回值賦給max*/
          printf("The maxmum value is %d\n", max);
          getch();
          return 0;
     }

     maxmum(int x, int y, int z)
     {
          int max;
          max=x>y?x:y;        /*求最大值*/
          max=max>z?max:z;
          return(max);        /*返回最大值*/
     }
    return語句可以向調用函數返回值, 但這種方法只能返回一個參數, 在許多情況下要返回多個參數, 這是用return語句就不能
滿足要求。Turob C2.0提供了另一種參數傳遞的方法, 就是調用函數向被調用函數傳遞的形式參數不是傳遞變量本身, 而是傳遞變

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久se精品一区精品二区| 国产亚洲短视频| 色综合夜色一区| av不卡在线播放| 99久久er热在这里只有精品66| 国内外成人在线| 久久精品国产精品青草| 国内精品伊人久久久久av影院| 精彩视频一区二区三区 | 91丨九色丨尤物| 成人免费毛片嘿嘿连载视频| 懂色av中文字幕一区二区三区 | 亚洲一区在线观看视频| 亚洲福利视频导航| 日韩福利视频导航| 免费成人深夜小野草| 国产一区二区在线观看免费| 国产成人午夜电影网| 97久久超碰国产精品| 欧美性xxxxxxxx| 日韩欧美黄色影院| 中文字幕av不卡| 亚洲一二三区不卡| 国产一区二区看久久| 99久久综合国产精品| 欧美日本在线一区| 精品国产乱子伦一区| 中文字幕亚洲在| 天天综合色天天综合色h| 国产呦精品一区二区三区网站| proumb性欧美在线观看| 欧美日韩国产一级二级| 国产精品色在线观看| 丝袜诱惑制服诱惑色一区在线观看| 久久精品99国产精品| 99精品欧美一区二区蜜桃免费| 欧美日韩黄视频| 国产午夜精品一区二区 | 51精品久久久久久久蜜臀| 久久久99精品久久| 午夜国产精品影院在线观看| 国产成人av一区| 欧美午夜在线一二页| 欧美激情一区二区三区四区| 天堂在线亚洲视频| 99久久免费精品高清特色大片| 这里只有精品视频在线观看| 1000精品久久久久久久久| 蜜桃av噜噜一区二区三区小说| 91麻豆视频网站| 国产欧美综合在线观看第十页| 婷婷开心久久网| 91黄色免费观看| 国产精品美女久久久久久| 狠狠色狠狠色综合| 欧美精品123区| 亚洲人妖av一区二区| 成人亚洲精品久久久久软件| 日韩美女天天操| 日韩专区在线视频| 欧洲av在线精品| 亚洲美女偷拍久久| 91丨九色丨黑人外教| 中文字幕欧美日韩一区| 国产成人综合自拍| 久久嫩草精品久久久精品| 免费在线观看一区二区三区| 欧美群妇大交群的观看方式| 一区二区三区丝袜| 在线看日本不卡| 亚洲欧美成人一区二区三区| 波多野结衣亚洲一区| 欧美高清在线精品一区| 成人深夜在线观看| 中文文精品字幕一区二区| 丁香婷婷综合激情五月色| 国产女人18水真多18精品一级做 | 亚洲超丰满肉感bbw| 在线精品视频免费播放| 樱桃视频在线观看一区| 色综合一个色综合亚洲| 亚洲大片一区二区三区| 555夜色666亚洲国产免| 久草在线在线精品观看| 国产日韩欧美激情| 99久久久国产精品| 亚洲免费高清视频在线| 欧美午夜精品免费| 日韩国产成人精品| 久久精品水蜜桃av综合天堂| 顶级嫩模精品视频在线看| 亚洲女女做受ⅹxx高潮| 337p亚洲精品色噜噜噜| 国产乱子轮精品视频| 亚洲欧洲www| 欧美三级韩国三级日本三斤 | 久久在线免费观看| 成人av动漫在线| 亚洲高清免费观看高清完整版在线观看 | 午夜a成v人精品| 日韩欧美一二三| 从欧美一区二区三区| 亚洲mv大片欧洲mv大片精品| 日韩欧美色综合网站| av一区二区不卡| 亚洲成人动漫在线免费观看| 精品久久一区二区三区| 91麻豆免费观看| 蜜臂av日日欢夜夜爽一区| 国产精品久久免费看| 在线播放欧美女士性生活| 国产自产2019最新不卡| 一区二区三区免费在线观看| 精品国产凹凸成av人导航| 色视频欧美一区二区三区| 久久99精品国产| 亚洲国产精品自拍| 国产精品入口麻豆原神| 91麻豆精品国产91久久久更新时间 | 成人免费三级在线| 日韩高清电影一区| 亚洲区小说区图片区qvod| 精品理论电影在线观看| 日本乱人伦aⅴ精品| 国产一区二区久久| 天天影视涩香欲综合网| 亚洲男人电影天堂| 国产日韩欧美在线一区| 精品国产伦一区二区三区免费| 在线精品视频一区二区| 国产a久久麻豆| 久久激五月天综合精品| 日日夜夜一区二区| 亚洲午夜精品17c| 中文字幕一区二区日韩精品绯色| 精品欧美乱码久久久久久1区2区| 在线视频国内自拍亚洲视频| av综合在线播放| 国产盗摄女厕一区二区三区 | 亚洲欧美成人一区二区三区| 久久久久久久一区| 日韩免费看的电影| 日韩欧美高清在线| 欧美一级国产精品| 欧美一区二区三区不卡| 欧美丰满少妇xxxbbb| 在线视频欧美区| 欧美日韩免费不卡视频一区二区三区| 91丨porny丨首页| 99精品黄色片免费大全| a级精品国产片在线观看| 99re视频精品| 色婷婷一区二区| 欧美日韩激情一区| 91精品国产乱码| 亚洲精品一区二区三区精华液| 欧美大黄免费观看| 精品欧美一区二区在线观看| 久久嫩草精品久久久久| 国产欧美一区二区精品久导航| 国产亚洲欧美日韩俺去了| 国产午夜精品一区二区三区四区| 久久久不卡影院| 国产精品麻豆一区二区 | 欧美蜜桃一区二区三区| 717成人午夜免费福利电影| 日韩欧美一区二区视频| 精品成人佐山爱一区二区| 国产精品午夜电影| 亚洲免费在线看| 日日噜噜夜夜狠狠视频欧美人| 麻豆一区二区99久久久久| 国产中文字幕精品| 成人福利视频在线看| 日本久久电影网| 日韩午夜三级在线| 亚洲国产电影在线观看| 亚洲大尺度视频在线观看| 蜜桃一区二区三区四区| 国产成人免费高清| 欧美私人免费视频| xf在线a精品一区二区视频网站| 国产精品卡一卡二| 婷婷中文字幕一区三区| 国产99久久久久| 欧美日韩国产a| 国产无一区二区| 亚洲福利一二三区| 韩国av一区二区三区在线观看| 一本大道av伊人久久综合| 欧美一级片在线| 国产精品无遮挡| 青青草伊人久久| eeuss鲁片一区二区三区在线观看| 欧美性videosxxxxx| 国产精品久久久一区麻豆最新章节| 亚洲国产中文字幕在线视频综合| 国产在线播放一区二区三区| 欧美影院一区二区| 国产精品美女久久久久久久久久久 |