Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C ·ç¸ñ£¨C

C ·ç¸ñ£¨C-style£©Ç¿ÖÆ×ªÐÍÈçÏ£º
(T) exdivssion // cast exdivssion to be of type T
º¯Êý·ç¸ñ£¨Function-style£©Ç¿ÖÆ×ªÐÍʹÓÃÕâÑùµÄÓï·¨£º
T(exdivssion) // cast exdivssion to be of type T
 
ÕâÁ½ÖÖÐÎʽ֮¼äûÓб¾ÖÊÉϵIJ»Í¬£¬Ëü´¿´â¾ÍÊÇÒ»¸ö°ÑÀ¨ºÅ·ÅÔÚÄĵÄÎÊÌâ¡£ÎÒ°ÑÕâÁ½ÖÖÐÎʽ³ÆÎª¾É·ç¸ñ£¨old-style£©µÄÇ¿ÖÆ×ªÐÍ¡£
ʹÓñê×¼C++µÄÀàÐÍת»»·û£ºstatic_cast¡¢dynamic_cast¡¢reinterdivt_cast¡¢ºÍconst_cast¡£
3.1 static_cast
Ó÷¨£ºstatic_cast < type-id > ( exdivssion )
¸ÃÔËËã·û°Ñexdivssionת»»Îªtype-idÀàÐÍ£¬µ«Ã»ÓÐÔËÐÐʱÀàÐͼì²éÀ´±£Ö¤×ª»»µÄ°²È«ÐÔ¡£ËüÖ÷ÒªÓÐÈçϼ¸ÖÖÓ÷¨£º
¢ÙÓÃÓÚÀà²ã´Î½á¹¹ÖлùÀàºÍ×ÓÀàÖ®¼äÖ¸Õë»òÒýÓõÄת»»¡£
¡¡¡¡½øÐÐÉÏÐÐת»»£¨°Ñ×ÓÀàµÄÖ¸Õë»òÒýÓÃת»»³É»ùÀà±íʾ£©Êǰ²È«µÄ£»
¡¡¡¡½øÐÐÏÂÐÐת»»£¨°Ñ»ùÀàÖ¸Õë»òÒýÓÃת»»³É×ÓÀà±íʾ£©Ê±£¬ÓÉÓÚûÓж¯Ì¬ÀàÐͼì²é£¬ËùÒÔÊDz»°²È«µÄ¡£
¢ÚÓÃÓÚ»ù±¾Êý¾ÝÀàÐÍÖ®¼äµÄת»»£¬Èç°Ñintת»»³Échar£¬°Ñintת»»³Éenum¡£ÕâÖÖת»»µÄ°²È«ÐÔÒ²Òª¿ª·¢ÈËÔ±À´±£Ö¤¡£
¢Û°Ñ¿ÕÖ¸Õëת»»³ÉÄ¿±êÀàÐ͵ĿÕÖ¸Õë¡£
¢Ü°ÑÈκÎÀàÐ͵ıí´ïʽת»»³ÉvoidÀàÐÍ¡£
×¢Ò⣺static_cast²»ÄÜת»»µôexdivssionµÄconst¡¢volitale¡¢»òÕß__unalignedÊôÐÔ¡£
3.2 dynamic_cast
Ó÷¨£ºdynamic_cast < type-id > ( exdivssion )
¸ÃÔËËã·û°Ñexdivssionת»»³Étype-idÀàÐ͵ĶÔÏó¡£Type-id±ØÐëÊÇÀàµÄÖ¸Õë¡¢ÀàµÄÒýÓûòÕßvoid *£»
Èç¹ûtype-idÊÇÀàÖ¸ÕëÀàÐÍ£¬ÄÇôexdivssionÒ²±ØÐëÊÇÒ»¸öÖ¸Õ룬Èç¹ûtype-idÊÇÒ»¸öÒýÓã¬ÄÇôexdivssionÒ²±ØÐëÊÇÒ»¸öÒýÓá£
dynamic_castÖ÷ÒªÓÃÓÚÀà²ã´Î¼äµÄÉÏÐÐת»»ºÍÏÂÐÐת»»£¬»¹¿ÉÒÔÓÃÓÚÀàÖ®¼äµÄ½»²æ×ª»»¡£
ÔÚÀà²ã´Î¼ä½øÐÐÉÏÐÐת»»Ê±£¬dynamic_castºÍstatic_castµÄЧ¹ûÊÇÒ»ÑùµÄ£»
ÔÚ½øÐÐÏÂÐÐת»»Ê±£¬dynamic_cast¾ßÓÐÀàÐͼì²éµÄ¹¦ÄÜ£¬±Èstatic_cast¸ü°²È«¡£
class B{
public:
int m_iNum;
virtual void foo();
};
class D:public B{
public:
char *m_szName[100];
};
void func(B *pb){
D *pd1 = static_cast(pb);
D *pd2 = dynamic_cast(pb);
}
ÔÚÉÏÃæµÄ´úÂë¶ÎÖУ¬Èç¹ûpbÖ¸ÏòÒ»¸öDÀàÐ͵ĶÔÏó£¬pd1ºÍpd2ÊÇÒ»ÑùµÄ£¬²¢ÇÒ¶ÔÕâÁ½¸öÖ¸ÕëÖ´ÐÐDÀàÐ͵ÄÈκβÙ×÷¶¼Êǰ²È«µÄ£»
µ«ÊÇ£¬Èç¹ûpbÖ¸ÏòµÄÊÇÒ»¸öBÀàÐ͵ĶÔÏó£¬ÄÇôpd1½«ÊÇÒ»¸öÖ¸Ïò¸Ã¶ÔÏóµÄÖ¸Õ룬¶ÔËü½øÐÐDÀàÐ͵IJÙ×÷½«ÊDz»°²È«µÄ£¨Èç·ÃÎÊm_szName£©£¬
¶øpd2½«ÊÇÒ»¸ö¿ÕÖ¸Õë¡£
ÁíÍâҪעÒ⣺BÒªÓ


Ïà¹ØÎĵµ£º

strassen in c language.

#include<stdio.h>
#define N 8
void input(int n,int p[N][N])
{
 int i,j;
 for(i=0;i<n;i++)
 {
  printf("please input the %d line:\n",i+1);
  for(j=0;j<n;j++)
  {
  scanf("%d",&p[i][j]);
 }
}
 }
void output(int n,int p[N][N])
......

¡¶Cר¼Ò±à³Ì¡·Ñ§Ï°×ܽá2


¡¶Cר¼Ò±à³Ì¡·Ñ§Ï°×ܽá2
 
ת×Ô £º http://blog.chinaunix.net/u2/87570/showart_2120069.html
±àÒëÆ÷×öÁËЩʲô
 
                 ͼ1£º±àÒëÆ÷ͨ³£·Ö¸î³É¼¸¸ö¸üСµÄ³ÌÐò
 
¾²Ì¬Á´½ÓÓ붯̬Á´½Ó
 
  ......

C¼¼ÇÉʰÒÅ~

1. ÔõÑù½¨Á¢ºÍÀí½â·Ç³£¸´ÔÓµÄÉùÃ÷£¿ÀýÈ綨ÒåÒ»¸ö°üº¬N ¸öÖ¸Ïò·µ»ØÖ¸Ïò×Ö·ûµÄÖ¸ÕëµÄº¯ÊýµÄÖ¸ÕëµÄÊý×飿
Õâ¸öÎÊÌâÖÁÉÙÓÐÒÔÏÂ3 ÖÖ´ð°¸:
1. char *(*(*a[N])())();
2. ÓÃtypedef Öð²½Íê³ÉÉùÃ÷:
typedef char *pc;  /* ×Ö·ûÖ¸Õë*/
typedef pc fpc(); /* ·µ»Ø×Ö·ûÖ¸ÕëµÄº¯Êý*/
typedef fpc *pfpc; /* ÉÏÃæº¯ÊýµÄÖ¸Õë*/ ......

CÖÐexternÐÞÊηûµÄÓ÷¨

ÔÚCÓïÑÔÖУ¬ÐÞÊηûexternÓÃÔÚ±äÁ¿»òÕߺ¯ÊýµÄÉùÃ÷ǰ£¬ÓÃÀ´ËµÃ÷“´Ë±äÁ¿/º¯ÊýÊÇÔڱ𴦶¨ÒåµÄ£¬ÒªÔÚ´Ë´¦ÒýÓÔ¡£
Ò».externÐÞÊαäÁ¿µÄÉùÃ÷
¾ÙÀýÀ´Ëµ£¬Èç¹ûÎļþa.cÐèÒªÒýÓÃb.cÖбäÁ¿int v£¬¾Í¿ÉÒÔÔÚa.cÖÐÉùÃ÷extern int v£¬È»ºó¾Í¿ÉÒÔÒýÓñäÁ¿v¡£ÕâÀïÐèҪעÒâµÄÊÇ£¬±»ÒýÓõıäÁ¿vµÄÁ´½ÓÊôÐÔ±ØÐëÊÇÍâÁ´½Ó£¨external£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ