CÎÊÌ⼯½õ£¨Ò»£©
Â¥Ö÷·¢±íÓÚ£º2009-07-24 10:11:03ÊÇÕâÑùµÄ,È¥Ò»¼Ò¹«Ë¾ÃæÊÔ,Óöµ½ÁËÒ»µÀcÓïÑÔµÄÌâ,¸öÈË
¸Ð¾õºÜ¹Ö,ÒÔǰû¼û¹ýÀàËÆµÄ,È»ºóÖ÷¿¼¹Ù˵ÕâÊǹØÓÚCÓïÑÔÇ¿ÈõÀàÐÍת»»Ê²Ã´µÄ,ÎҸоõËû
×Ô¼º¶¼²»ÍêÈ«Çå³þ,È»ºó»ØÀ´ÔÚÍøÉϲ鵽ÕâÊÇÓ¢¹ú½£ÇÅ´óÑ§ÍøÉϳöµÄ¼ÆËã»úÌâ :
#include <stdio.h>
#define init_employee(X,Y) {(X),(Y),wage_emp}
typedef struct Employee Em;
struct Employee {int hours,salary;int (*wage)(Em*);};
int wage_emp(Em *ths) {return ths->hours*ths->salary;}
#define init_manager(X,Y,Z) {(X),(Y),wage_man,(Z)}
typedef struct Manager Mn;
struct Manager {int hours,salary;int (*wage)(Mn*);int bonus;};
int wage_man(Mn *ths) {return ths->hours*ths->salary+ths->bonus;}
int main(void) {
Mn m = init_manager(40,10,20);
Em *e= (Em *) &m;
printf("%d\n",e->wage(e));
return 0;
}
×îºóÊä³öÊÇ420,¿ÉÎÒдµÄÊÇ400,ÓÐÇë¸ßÈËÄÜÏêϸ½âÊÍÏÂÕâÌâµÄÒâ˼ô,Ϊʲôº¯ÊýÖ¸Õëµ÷ÓÃ
µÄ²»ÊÇwage_emp,²ÎÊý¶¼²»Æ¥Åä°¢,¶øÇÒEm *e= (Em *) &mµ½µ×ÓÐʲôÒâÒå,ÒòΪËüºóÃæ»¹ÓÐ
Ìí¼ÓµÄÎÊÌâÊÇÓÃC++À´ÖØÐ´²¢ËµÃ÷ºÃ´¦,ÄÇËüÕâôʵÏÖÊÇÏëÓÃCʵÏÖ¶à̬µÄÐÔÖÊô,×ÜÖ®¸Ð¾õ
ºÜ¹Ö,Íû¸ßÈ˽â´ð!!
-------------------------------
nit_managerʱ£¬Ð´Èëµ½½á¹¹ÌåÖеÄÖ¸Õë¾ÍÊÇwage_man£¬¶ø²»ÊÇwage_emp£¬ºóÃæËäÈ»&m±»Ç¿
ÖÆ×ª»»³ÉÁËEm*ÀàÐÍ£¬µ«ÀàÐÍÇ¿ÖÆ×ª»»²¢²»»á¸Ä±ä½á¹¹Ìå±äÁ¿ÖеÄÊý¾Ý¡£Òò´ËÄǸöº¯ÊýÖ¸Õë
Ö¸ÏòµÄÈÔÈ»ÊÇwage_manÕâ¸öº¯Êý¡£
ÕâÀïÔËÓÃÁËһЩÇɺϣºËäÈ»wage_emp¸úwage_manÁ½¸öº¯ÊýµÄÇ©ÃûÊDz»Ò»ÑùµÄ£¬µ«´Óµ×²ãÀ´
¿´£¬²¢ÎÞ¶à´óÇø±ð£¬²ÎÊý¶¼ÊÇÒ»¸öËÄ×Ö½ÚµÄÖ¸Õ룬·µ»ØÖµ¶¼ÊÇint£¬Õâ¾ÍʹµÃËüÃǵĵײãµ÷
ÓûúÖÆÊÇÒ»ÑùµÄ£¬º¯Êýµ÷ÓÃÎÞ·ÇÊDzÎÊýѹջ¡¢Ö¸ÕëÌø×ªÕâÀàÖ¸Á²ÎÊýºÍ·µ»ØÖµÀàÐͶ¼Ò»
Ñù£¬µ÷ÓõÄÖ¸Áî¾Í¿Ï¶¨ÊÇÍêȫһÑùµÄ¡£
Òò´ËËäÈ»ÊÇ´«µÝÒ»¸öEm*ÀàÐ͵IJÎÊý¶øÊµ¼Êµ÷ÓõÄÊÇwage_man£¬µ«ÓÉÓÚÕâЩÇɺϣ¬±àÒëÆ÷¾Í
ÕâÑù±»Çá¶øÒ×¾ÙµØÆÛÆ……£¬Ò²¾ÍÊÇ˵£¬×îºó±»Êµ¼Êµ÷ÓõÄwage_manÈÔÈ»°Ñ²ÎÊýµ±³ÉMn*£¬
¶øÊµ¼ÊÉÏËüÓÖȷȷʵʵÊǸöMn*£¬ÓÚÊÇÒ²²»»á³öÈκÎÎÊÌâ¡£
Èç¹ûÓÃC++À´Ð´£¬ÓÉÓÚC++ÓÐÄÚÖõØÖ§³Ö¶à̬µÄ»úÖÆ£¬¾ÍÓò»×ÅʹÓÃÕâЩÁîÈ˷ѽâµÄÆÛƱà
ÒëÆ÷µÄÊÖ·¨ÁË¡£
-------------------------------
ʵ¼ÊÉϹ۲ìEmployee ºÍManager µÄ½á¹¹²»ÄÑ·¢ÏÖ
Manager Ö»ÊDZÈEm
Ïà¹ØÎĵµ£º
Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í
DelphiÊý¾ÝÀàÐÍC/C++
ShorInt
8λÓзûºÅÕûÊý
char
Byte
8λÎÞ·ûºÅÕûÊý
BYTE,unsigned short
SmallInt
16λÓзûºÅÕûÊý
short
Word
16λÎÞ·ûºÅÕûÊý
unsigned short
Integer,LongInt
32λÓзûºÅÕûÊý
int,long
Cardinal,LongWord/DWORD
32λÎÞ·ûºÅÕûÊý
unsigned long
Int6 ......
ÈçºÎÀí½âC run-time library £¨CÔËÐÐʱ¿â£©
×¢£º ÒÔÏÂÄÚÈݲ¿·ÖÒý×ÔCSNDÖÐÏà¹ØÌÖÂÛµÄÌû×Ó£¬²¢½áºÏ×Ô¼ºµÄÀí½âÕûÀí¶ø³É¡£½ö¹©²Î¿¼¡£
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´Ë ......
C/C++´«µÝ¶þάÊý×é - [IT×ÊÁÏ]
//cÓïÑÔÖо³£ÐèҪͨ¹ýº¯Êý´«µÝ¶þάÊý×飬ÓÐÈýÖÖ·½·¨¿ÉÒÔʵÏÖ£¬ÈçÏ£º
//·½·¨Ò»£¬ Ðβθø³öµÚ¶þάµÄ³¤¶È¡£
#include <stdio.h>
void func(int n, char str[][5])
{
int i;
& ......
ÕâÆªÎÄÕ½éÉÜÔÚLINUXϽøÐÐCÓïÑÔ±à³ÌËùÐèÒªµÄ»ù´¡ÖªÊ¶.ÔÚÕâÆªÎÄÕµ±ÖÐ,ÎÒÃǽ«»áѧµ½ÒÔÏÂÄÚÈÝ:
Ô´³ÌÐò±àÒë
MakefileµÄ±àд
³ÌÐò¿âµÄÁ´½Ó
³ÌÐòµÄµ÷ÊÔ
Í·ÎļþºÍϵͳÇóÖú
1.Ô´³ÌÐòµÄ±àÒë
ÔÚLinuxÏÂÃæ,Èç¹ûÒª±àÒëÒ»¸öCÓïÑÔÔ´³ÌÐò,ÎÒÃÇҪʹÓÃGNUµÄgcc±àÒëÆ÷. &nb ......
CÓïÑÔ±àÒëÈ«¹ý³Ì
±àÒëµÄ¸ÅÄ±àÒë³ÌÐò¶ÁȡԴ³ÌÐò£¨×Ö·ûÁ÷£©£¬¶ÔÖ®½øÐдʷ¨ºÍÓï·¨µÄ·ÖÎö£¬½«¸ß¼¶ÓïÑÔÖ¸Áîת»»Îª¹¦ÄܵÈЧµÄ»ã±à´úÂ룬ÔÙÓÉ»ã±à³ÌÐòת»»Îª»úÆ÷ÓïÑÔ£¬²¢ÇÒ°´ÕÕ²Ù×÷ϵͳ¶Ô¿ÉÖ´ÐÐÎļþ¸ñʽµÄÒªÇóÁ´½ÓÉú³É¿ÉÖ´ÐгÌÐò¡£
±àÒëµÄÍêÕû¹ý³Ì£ºCÔ´³ÌÐò££>Ô¤±àÒë´¦Àí(.c)££ ......