隨筆 - 251  文章 - 504  trackbacks - 0
          <2006年12月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!

          留言簿(14)

          隨筆分類

          收藏夾

          My Favorite Web Sites

          名Bloger

          非著名Bloger

          搜索

          •  

          積分與排名

          • 積分 - 204316
          • 排名 - 283

          最新評論

          關鍵字 Void 表示函數不接受任何參數或不返回任何值,同時還可以用在創建通用指針:一個可指向任何類型的數據對象的指針。如:

          Void *ptr; // ptr 聲明為一個通用指針,但沒有指定它指向的東西。

          Void 指針最常見的用途是用于聲明函數的參數。你可能會希望你的一個函數能夠處理不同的類型的參數,可以將 int 變量傳遞給它,也可以將 float 變量傳給它,等等。這樣的情況下,你可以將函數聲明為接受 void 指針作為參數,則它可以接受任何類型的數據,可以將指向任何東西的指針傳遞給該函數。如:

          Void half(void *val);

          下面是一個例子程序:

          #include < stdio.h >
          void ?half( void ? * pval, char ?type);
          int ?main( void )
          {
          int ?i = 20 ;
          long ?l = 100000 ;
          float ?f = 12.456 ;
          double ?d = 123.044444 ;

          printf(
          " \n%d " ,i);
          printf(
          " \n%ld " ,l);
          printf(
          " \n%f " ,f);
          printf(
          " \n%lf\n\n " ,d);

          half(
          & i, ' i ' );
          half(
          & l, ' l ' );
          half(
          & d, ' d ' );
          half(
          & f, ' f ' );

          printf(
          " \n%d " ,i);
          printf(
          " \n%ld " ,l);
          printf(
          " \n%f " ,f);
          printf(
          " \n%lf\n\n " ,d);
          return ? 0 ;
          }

          void ?half( void ? * pval, char ?type)
          {
          switch (type)
          {
          ?
          case ? ' i ' :
          ??
          {
          ???
          * (( int ? * )pval) /= 2 ;??????? // 強制轉換類型,存取指針pval指向的int變量
          ??? break ;
          ??}

          ??
          case ? ' l ' :
          ??
          {
          ???
          * (( long ? * )pval) /= 2 ;??????? // 強制轉換類型,存取指針pval指向的long變量
          ??? break ;
          ??}

          ??
          case ? ' f ' :
          ??
          {
          ???
          * (( float ? * )pval) /= 2 ;??????? // 強制轉換類型,存取指針pval指向的float變量
          ??? break ;
          ??}

          ??
          case ? ' d ' :
          ??
          {
          ???
          * (( double ?? * )pval) /= 2 ;??????? // 強制轉換類型,存取指針pval指向的double變量
          ??? break ;
          ??}

          }

          }

          程序輸出結果:
          20
          100000
          12.456000
          123.044444


          10
          50000
          6.228000
          61.522222

          posted on 2006-12-11 15:12 matthew 閱讀(534) 評論(0)  編輯  收藏 所屬分類: 閱讀筆記
          主站蜘蛛池模板: 牡丹江市| 读书| 新竹市| 壤塘县| 聂拉木县| 天柱县| 林西县| 纳雍县| 手游| 阜阳市| 英山县| 马山县| 武清区| 康保县| 宜黄县| 东乡县| 定远县| 喀喇沁旗| 敖汉旗| 商南县| 赫章县| 桂平市| 平昌县| 濮阳县| 盘锦市| 突泉县| 玉溪市| 修文县| 凤台县| 沙田区| 淅川县| 永吉县| 丹棱县| 金华市| 洛隆县| 友谊县| 普宁市| 易门县| 靖远县| 昔阳县| 呼伦贝尔市|