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

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

          留言簿(14)

          隨筆分類

          收藏夾

          My Favorite Web Sites

          名Bloger

          非著名Bloger

          搜索

          •  

          積分與排名

          • 積分 - 204295
          • 排名 - 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)  編輯  收藏 所屬分類: 閱讀筆記
          主站蜘蛛池模板: 龙岩市| 绵竹市| 佛学| 和田县| 临高县| 长葛市| 青铜峡市| 威信县| 页游| 双鸭山市| 巨鹿县| 龙南县| 台南县| 乌兰察布市| 双流县| 阿拉善盟| 嵊泗县| 宝山区| 永清县| 凤台县| 辽源市| 锦州市| 屏东县| 墨竹工卡县| 吉木萨尔县| 镇宁| 揭西县| 黑龙江省| 留坝县| 鹤峰县| 开化县| 万宁市| 怀来县| 小金县| 隆化县| 乐平市| 封开县| 长寿区| 安宁市| 左贡县| 宝坻区|