Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : c++

CºÍC++±à³ÌºÍѧϰÎĵµ

 CºÍC++±à³ÌºÍѧϰÎĵµ
1  :Ö¸Õë±äÁ¿Ãû³ÆÒÔpΪÊ××Ö·û£¬ÕâÊdzÌÐòԱͨ³£ÔÚ¶¨ÒåÖ¸ÕëʱµÄÒ»¸öÏ°¹ß
2  :har * p;    (int *)p °ÑpÇ¿ÖÆת»»ÎªintÐÍ                         
3.1 :Ö¸ÕëµÄÎÊÌ⣺ָÕëÓ¦ÓÃʱ×îºÃ¸øÓ趨Òå(³õʼ»¯)ÕâÑù¿ÉÒÔ±£Ö¤Ö¸ÕëµÄÖ¸ÏòÊdzÌÐòÔ±×Ô¼ºÄܹ»°ÑÎյġ£
3.2 :Ö¸ÕëµÄÔ½½ç£¬Õâ¿ÖÅÂÊÇ×îÄѲé³öµÄ°É£¡                          
3.3 :Ö¸ÕëµÄ¾Ö²¿±äÁ¿ÎÊÌâ¡£¾Ö²¿µÄÖ¸Õë±äÁ¿»á±»³ÌÐò×Ô¶¯ÊÍ·Å£¬Èô³ÌÐòÔ±ÒýÓôËÀàÖ¸Õë¾Í»á³ö´í¡£2007-9-1
4£®¶þάָÕëµÄÓ¦ÓÃʵÀý£º
#include <stdio.h>
#include <string.h>
void sort(char (*client)[10]);
void main()
{
         int temp;
         char client[3][10];
      & ......

CºÍC++±à³ÌºÍѧϰÎĵµ

 CºÍC++±à³ÌºÍѧϰÎĵµ
1  :Ö¸Õë±äÁ¿Ãû³ÆÒÔpΪÊ××Ö·û£¬ÕâÊdzÌÐòԱͨ³£ÔÚ¶¨ÒåÖ¸ÕëʱµÄÒ»¸öÏ°¹ß
2  :har * p;    (int *)p °ÑpÇ¿ÖÆת»»ÎªintÐÍ                         
3.1 :Ö¸ÕëµÄÎÊÌ⣺ָÕëÓ¦ÓÃʱ×îºÃ¸øÓ趨Òå(³õʼ»¯)ÕâÑù¿ÉÒÔ±£Ö¤Ö¸ÕëµÄÖ¸ÏòÊdzÌÐòÔ±×Ô¼ºÄܹ»°ÑÎյġ£
3.2 :Ö¸ÕëµÄÔ½½ç£¬Õâ¿ÖÅÂÊÇ×îÄѲé³öµÄ°É£¡                          
3.3 :Ö¸ÕëµÄ¾Ö²¿±äÁ¿ÎÊÌâ¡£¾Ö²¿µÄÖ¸Õë±äÁ¿»á±»³ÌÐò×Ô¶¯ÊÍ·Å£¬Èô³ÌÐòÔ±ÒýÓôËÀàÖ¸Õë¾Í»á³ö´í¡£2007-9-1
4£®¶þάָÕëµÄÓ¦ÓÃʵÀý£º
#include <stdio.h>
#include <string.h>
void sort(char (*client)[10]);
void main()
{
         int temp;
         char client[3][10];
      & ......

¶¨ÒåC/C++È«¾Ö±äÁ¿/³£Á¿¼¸ÖÖ·½·¨µÄÇø±ð

ÔÚÌÖÂÛÈ«¾Ö±äÁ¿Ö®Ç°ÎÒÃÇÏÈÒªÃ÷°×¼¸¸ö»ù±¾µÄ¸ÅÄ
 
1. ±àÒëµ¥Ôª(Ä£¿é)£º
    ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ­²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾­³£Ê¹ÓÃgcc£¬makefileµÈ¹¤¾ßÔÚlinux»òÕßǶÈëʽÏÂ×ö¿ª·¢¹¤×÷µÄ»°£¬ÄÇôÄã¿ÉÄܷdz£µÄÀí½â±àÒëÓëÁ¬½ÓµÄÇø±ð£¡µ±ÔÚVCÕâÑùµÄ¿ª·¢¹¤¾ßÉϱàдÍê´úÂ룬µã»÷±àÒë°´Å¥×¼±¸Éú³ÉexeÎļþʱ£¬VCÆäʵ×öÁËÁ½²½¹¤×÷£¬µÚÒ»²½£¬½«Ã¿¸ö.cpp(.c)ºÍÏàÓ¦.hÎļþ±àÒë³ÉobjÎļþ£»µÚ¶þ²½£¬½«¹¤³ÌÖÐËùÓеÄobjÎļþ½øÐÐLINKÉú³É×îÖÕµÄ.exeÎļþ£¬ÄÇô´íÎó¾ÍÓпÉÄÜÔÚÁ½¸öµØ·½²úÉú£¬Ò»¸öÊDZàÒëʱµÄ´íÎó£¬Õâ¸öÖ÷ÒªÊÇÓï·¨´íÎó£¬ÁíÒ»¸öÊÇÁ¬½Ó´íÎó£¬Ö÷ÒªÊÇÖظ´¶¨Òå±äÁ¿µÈ¡£ÎÒÃÇËù˵µÄ±àÒëµ¥Ôª¾ÍÊÇÖ¸ÔÚ±àÒë½×¶ÎÉú³ÉµÄÿ¸öobjÎļþ£¬Ò»¸öobjÎļþ¾ÍÊÇÒ»¸ö±àÒëµ¥Ôª£¬Ò²¾ÍÊÇ˵һ¸öcpp(.c)ºÍËüÏàÓ¦µÄ.hÎļþ¹²Í¬×é³ÉÁËÒ»¸ö±àÒëµ¥Ôª£¬Ò»¸ö¹¤³ÌÓɺܶà¸ö±àÒëµ¥Ôª×é³É£¬Ã¿¸öobjÎļþÀï°üº¬Á˱äÁ¿´æ´¢µÄÏà¶ÔµØÖ·µÈ ¡£
 
2. ÉùÃ÷Ó붨ÒåµÄÇø±ð
    º¯Êý»ò±äÁ¿ÔÚÉùÃ÷ʱ£¬²¢Ã»ÓиøËüʵ¼Êµ ......

¶¨ÒåC/C++È«¾Ö±äÁ¿/³£Á¿¼¸ÖÖ·½·¨µÄÇø±ð

ÔÚÌÖÂÛÈ«¾Ö±äÁ¿Ö®Ç°ÎÒÃÇÏÈÒªÃ÷°×¼¸¸ö»ù±¾µÄ¸ÅÄ
 
1. ±àÒëµ¥Ôª(Ä£¿é)£º
    ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ­²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾­³£Ê¹ÓÃgcc£¬makefileµÈ¹¤¾ßÔÚlinux»òÕßǶÈëʽÏÂ×ö¿ª·¢¹¤×÷µÄ»°£¬ÄÇôÄã¿ÉÄܷdz£µÄÀí½â±àÒëÓëÁ¬½ÓµÄÇø±ð£¡µ±ÔÚVCÕâÑùµÄ¿ª·¢¹¤¾ßÉϱàдÍê´úÂ룬µã»÷±àÒë°´Å¥×¼±¸Éú³ÉexeÎļþʱ£¬VCÆäʵ×öÁËÁ½²½¹¤×÷£¬µÚÒ»²½£¬½«Ã¿¸ö.cpp(.c)ºÍÏàÓ¦.hÎļþ±àÒë³ÉobjÎļþ£»µÚ¶þ²½£¬½«¹¤³ÌÖÐËùÓеÄobjÎļþ½øÐÐLINKÉú³É×îÖÕµÄ.exeÎļþ£¬ÄÇô´íÎó¾ÍÓпÉÄÜÔÚÁ½¸öµØ·½²úÉú£¬Ò»¸öÊDZàÒëʱµÄ´íÎó£¬Õâ¸öÖ÷ÒªÊÇÓï·¨´íÎó£¬ÁíÒ»¸öÊÇÁ¬½Ó´íÎó£¬Ö÷ÒªÊÇÖظ´¶¨Òå±äÁ¿µÈ¡£ÎÒÃÇËù˵µÄ±àÒëµ¥Ôª¾ÍÊÇÖ¸ÔÚ±àÒë½×¶ÎÉú³ÉµÄÿ¸öobjÎļþ£¬Ò»¸öobjÎļþ¾ÍÊÇÒ»¸ö±àÒëµ¥Ôª£¬Ò²¾ÍÊÇ˵һ¸öcpp(.c)ºÍËüÏàÓ¦µÄ.hÎļþ¹²Í¬×é³ÉÁËÒ»¸ö±àÒëµ¥Ôª£¬Ò»¸ö¹¤³ÌÓɺܶà¸ö±àÒëµ¥Ôª×é³É£¬Ã¿¸öobjÎļþÀï°üº¬Á˱äÁ¿´æ´¢µÄÏà¶ÔµØÖ·µÈ ¡£
 
2. ÉùÃ÷Ó붨ÒåµÄÇø±ð
    º¯Êý»ò±äÁ¿ÔÚÉùÃ÷ʱ£¬²¢Ã»ÓиøËüʵ¼Êµ ......

¹ØÓÚdelete C/C++ Ö¸Õë

Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»Øʱ£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆΪ¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊø֮ǰ²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2. 
new ½øÐÐ×ÔÓÉ´æ´¢ÇøÖÐÄÚ´æ·ÖÅä¡£
Èç¹û new ²»ÄÜÔÚ×ÔÓÉ´æ´¢ÇøÖд´½¨Äڴ棬Ôò»á·µ»Ø NULLÖ¸Õ롣ÿ´Î·ÖÅäÐÂÄÚ´æʱһ¶¨Òª¼ì²éÖ¸ÕëÊÇ·ñΪ null.
delete ²Ù×÷ʵ¼ÊÉÏÊǻָ´Ö¸ÕëËùÖ¸µÄÄڴ棬ʹ֮¿ÉÒÔÔÙÓ㬶ø²»ÖÁÓÚÔì³ÉÄÚ´æй©(memory leak).
¶øÖ¸ÕëÈÔÈ»ÊÇÖ¸Õ룬±ØҪʱ»¹¿ÉÒÔÖØи³Öµ¡£
Èç¹û¶ÔÒѾ­ÊͷŹýµÄÖ¸Õëµ÷Óà delete ²Ù×÷£¬»áµ¼Ö³ÌÐò±ÀÀ£¡£µ±É¾³ýÖ¸Õëʱ£¬¸øÖ¸Õ븳ֵ NULL(0), ¶Ô¿ÕÖ¸Õëµ÷Óà delete ÊÇ°²È«µÄ¡£
ÄÚ´æй©£ºÒ»ÖÖÇé¿öÊdzÌÐòÔÚδÊÍ·ÅËüÖ¸ÏòµÄÄÚ´æ֮ǰ¾Í¸øÖ¸ÕëÖØи³Öµ¡£
µ±³ÌÐò¶Ô×ÔÓÉ´æ´¢ÇøÖеĶÔÏóÖ¸Õëµ÷Óà delete ʱ£¬ÔÚÊÍ·ÅÄÚ´æ֮ǰ»á×Ô¶¯µ÷ÓöÔÏóµÄÎö¹¹º¯Êý¡£Õâ¸ö²ßÂÔ¸øÀàÌṩÁËÇåÀíµÄ»ú»á¡£
3.
¶ÔÓÚSymbianÓ¦ÓóÌÐò£¬Èç¹ûÏÈdeleteÁËÒ»¸öÖ¸ÕëÖ¸ÏòµÄÄڴ棬µ«Ã»ÓаÑÕâ¸öÖ¸Õ븳ֵΪNULL£¬È»ºóÔÚij´¦·¢ÉúÁËLeave, Çå³ýÕ»µ¯³öÖ¸Õë²¢ÔÙ´Îdelet ......

¹ØÓÚdelete C/C++ Ö¸Õë

Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»Øʱ£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆΪ¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊø֮ǰ²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2. 
new ½øÐÐ×ÔÓÉ´æ´¢ÇøÖÐÄÚ´æ·ÖÅä¡£
Èç¹û new ²»ÄÜÔÚ×ÔÓÉ´æ´¢ÇøÖд´½¨Äڴ棬Ôò»á·µ»Ø NULLÖ¸Õ롣ÿ´Î·ÖÅäÐÂÄÚ´æʱһ¶¨Òª¼ì²éÖ¸ÕëÊÇ·ñΪ null.
delete ²Ù×÷ʵ¼ÊÉÏÊǻָ´Ö¸ÕëËùÖ¸µÄÄڴ棬ʹ֮¿ÉÒÔÔÙÓ㬶ø²»ÖÁÓÚÔì³ÉÄÚ´æй©(memory leak).
¶øÖ¸ÕëÈÔÈ»ÊÇÖ¸Õ룬±ØҪʱ»¹¿ÉÒÔÖØи³Öµ¡£
Èç¹û¶ÔÒѾ­ÊͷŹýµÄÖ¸Õëµ÷Óà delete ²Ù×÷£¬»áµ¼Ö³ÌÐò±ÀÀ£¡£µ±É¾³ýÖ¸Õëʱ£¬¸øÖ¸Õ븳ֵ NULL(0), ¶Ô¿ÕÖ¸Õëµ÷Óà delete ÊÇ°²È«µÄ¡£
ÄÚ´æй©£ºÒ»ÖÖÇé¿öÊdzÌÐòÔÚδÊÍ·ÅËüÖ¸ÏòµÄÄÚ´æ֮ǰ¾Í¸øÖ¸ÕëÖØи³Öµ¡£
µ±³ÌÐò¶Ô×ÔÓÉ´æ´¢ÇøÖеĶÔÏóÖ¸Õëµ÷Óà delete ʱ£¬ÔÚÊÍ·ÅÄÚ´æ֮ǰ»á×Ô¶¯µ÷ÓöÔÏóµÄÎö¹¹º¯Êý¡£Õâ¸ö²ßÂÔ¸øÀàÌṩÁËÇåÀíµÄ»ú»á¡£
3.
¶ÔÓÚSymbianÓ¦ÓóÌÐò£¬Èç¹ûÏÈdeleteÁËÒ»¸öÖ¸ÕëÖ¸ÏòµÄÄڴ棬µ«Ã»ÓаÑÕâ¸öÖ¸Õ븳ֵΪNULL£¬È»ºóÔÚij´¦·¢ÉúÁËLeave, Çå³ýÕ»µ¯³öÖ¸Õë²¢ÔÙ´Îdelet ......

C/C++ Ö¸Ïò×ÓÀà¶ÔÏóµÄ»ùÀàÖ¸Õë

ÓÐÈçϳÌÐò£º
//-----------------
class A
{
public:
A()
{
printf( "base A\r\n" );
}
virtual ~A()
{
printf( "base ~A\r\n" );
}
public:
virtual void VirtualFunc()
{
printf( "base VirtualFunc\r\n" );
};
void Func()
{
printf( "base Func\r\n" );
}
void F1()
{
printf( "base F1\r\n" );
}
protected:
private:
};
class B : public A
{
public:
B()
{
printf( "derive B\r\n" );
}
~B()
{
printf( "derive ~B\r\n" );
}
public:
virtual void VirtualFunc()
{
printf( "derive VirtualFunc\r\n" );
};
void Func()
{
printf( "derive Func\r\n" );
}
void G1()
{
printf( "derive G1\r\n" );
}
protected:
private:
};
ÔÚÕâÁ½¸öÀàÖУ¬×ÓÀàB ÖØдÁË »ùÀàµÄ Á½¸öº¯Êý£¬Ò»¸öÊÇÐ麯Êý£¬Ò»¸ö²»ÊÇÐ麯Êý¡£
1. Èç¹ûmainº¯ÊýÈçÏ£º
int main(int argc, int* argv[])
{
A* pA = new B;  //»ùÀàÖ¸ÕëÖ¸Ïò×ÓÀà¶ÔÏó
pA->VirtualFunc();
pA->Func();
//pA->G1(); //³ö´í£º'G1' : is not a member of 'A'
delete( pA );
system("pause"); ......

C/C++ Ö¸Ïò×ÓÀà¶ÔÏóµÄ»ùÀàÖ¸Õë

ÓÐÈçϳÌÐò£º
//-----------------
class A
{
public:
A()
{
printf( "base A\r\n" );
}
virtual ~A()
{
printf( "base ~A\r\n" );
}
public:
virtual void VirtualFunc()
{
printf( "base VirtualFunc\r\n" );
};
void Func()
{
printf( "base Func\r\n" );
}
void F1()
{
printf( "base F1\r\n" );
}
protected:
private:
};
class B : public A
{
public:
B()
{
printf( "derive B\r\n" );
}
~B()
{
printf( "derive ~B\r\n" );
}
public:
virtual void VirtualFunc()
{
printf( "derive VirtualFunc\r\n" );
};
void Func()
{
printf( "derive Func\r\n" );
}
void G1()
{
printf( "derive G1\r\n" );
}
protected:
private:
};
ÔÚÕâÁ½¸öÀàÖУ¬×ÓÀàB ÖØдÁË »ùÀàµÄ Á½¸öº¯Êý£¬Ò»¸öÊÇÐ麯Êý£¬Ò»¸ö²»ÊÇÐ麯Êý¡£
1. Èç¹ûmainº¯ÊýÈçÏ£º
int main(int argc, int* argv[])
{
A* pA = new B;  //»ùÀàÖ¸ÕëÖ¸Ïò×ÓÀà¶ÔÏó
pA->VirtualFunc();
pA->Func();
//pA->G1(); //³ö´í£º'G1' : is not a member of 'A'
delete( pA );
system("pause"); ......

C/C++½á¹¹Ìå×Ö½Ú¶ÔÆë


[×¢]£º×î½üÔÚ×öUVCÃèÊö·ûµÄ±à¼­¹¤¾ß£¬Óõ½ºÜ¶àµÄ½á¹¹£¬ÎªÁË·½±ã°Ñ½á¹¹Ìåд³ÉbinÎļþ£¬ÐèÒª°Ñ½á¹¹ÌåÖÐÌî³äµÄ×Ö½ÚÈ¥µô£¬ÔÚÍøÉÏËÑË÷µÃµ½ÕâƪÎÄÕ£¬¸Ð¾õͦºÃµÄ£¬×ª¹ýÀ´×ö¸ö¼ÍÄî¡£
½á¹¹Ìå(struct)µÄsizeofÖµ£¬²¢²»ÊǼòµ¥µÄ½«ÆäÖи÷ÔªËØËùÕ¼×Ö½ÚÏà¼Ó£¬¶øÊÇÒª¿¼Âǵ½´æ´¢¿Õ¼äµÄ×Ö½Ú¶ÔÆëÎÊÌâ¡£ÏÈ¿´ÏÂÃ涨ÒåµÄÁ½¸ö½á¹¹Ìå.
struct
{
    char a;
    short b;
    char c;
}S1;
struct
{
    char a;
    char b;
    short c;
}S2;
·Ö±ðÓóÌÐò²âÊԵóösizeof(S1)=6 , sizeof(S2)=4
¿É¼û£¬ËäÈ»Á½¸ö½á¹¹ÌåËùº¬µÄÔªËØÏàͬ£¬µ«ÒòΪÆäÖдæ·ÅµÄÔªËØÀàÐÍ˳Ðò²»Ò»Ñù£¬ËùÕ¼×Ö½ÚÒ²³öÏÖ²îÒì¡£Õâ¾ÍÊÇ×Ö½Ú¶ÔÆëÔ­Òò¡£Í¨¹ý×Ö½Ú¶ÔÆ룬ÓÐÖúÓÚ¼Ó¿ì¼ÆËã»úµÄÈ¡ÊýËٶȣ¬·ñÔò¾ÍµÃ¶à»¨Ö¸ÁîÖÜÆÚ¡£
×Ö½Ú¶ÔÆëÔ­Ôò
½á¹¹ÌåĬÈϵÄ×Ö½Ú¶ÔÆëÒ»°ãÂú×ãÈý¸ö×¼Ôò£º
1) ½á¹¹Ìå±äÁ¿µÄÊ×µØÖ·Äܹ»±»Æä×î¿í»ù±¾ÀàÐͳÉÔ±µÄ´óСËùÕû³ý£»
2) ½á¹¹Ìåÿ¸ö³ÉÔ±Ïà¶ÔÓڽṹÌåÊ×µØÖ·µÄÆ«ÒÆÁ¿£¨offset£©¶¼ÊdzÉÔ±×ÔÉí´óСµÄÕûÊý±¶£¬ÈçÓÐÐèÒª±àÒëÆ÷»áÔÚ³ÉÔ±Ö®¼ä¼ÓÉÏÌî³ä×Ö½Ú£¨internal adding£©£»
3) ½á¹¹ÌåµÄ×Ü´óСΪ½á¹¹ ......

C/C++½á¹¹Ìå×Ö½Ú¶ÔÆë


[×¢]£º×î½üÔÚ×öUVCÃèÊö·ûµÄ±à¼­¹¤¾ß£¬Óõ½ºÜ¶àµÄ½á¹¹£¬ÎªÁË·½±ã°Ñ½á¹¹Ìåд³ÉbinÎļþ£¬ÐèÒª°Ñ½á¹¹ÌåÖÐÌî³äµÄ×Ö½ÚÈ¥µô£¬ÔÚÍøÉÏËÑË÷µÃµ½ÕâƪÎÄÕ£¬¸Ð¾õͦºÃµÄ£¬×ª¹ýÀ´×ö¸ö¼ÍÄî¡£
½á¹¹Ìå(struct)µÄsizeofÖµ£¬²¢²»ÊǼòµ¥µÄ½«ÆäÖи÷ÔªËØËùÕ¼×Ö½ÚÏà¼Ó£¬¶øÊÇÒª¿¼Âǵ½´æ´¢¿Õ¼äµÄ×Ö½Ú¶ÔÆëÎÊÌâ¡£ÏÈ¿´ÏÂÃ涨ÒåµÄÁ½¸ö½á¹¹Ìå.
struct
{
    char a;
    short b;
    char c;
}S1;
struct
{
    char a;
    char b;
    short c;
}S2;
·Ö±ðÓóÌÐò²âÊԵóösizeof(S1)=6 , sizeof(S2)=4
¿É¼û£¬ËäÈ»Á½¸ö½á¹¹ÌåËùº¬µÄÔªËØÏàͬ£¬µ«ÒòΪÆäÖдæ·ÅµÄÔªËØÀàÐÍ˳Ðò²»Ò»Ñù£¬ËùÕ¼×Ö½ÚÒ²³öÏÖ²îÒì¡£Õâ¾ÍÊÇ×Ö½Ú¶ÔÆëÔ­Òò¡£Í¨¹ý×Ö½Ú¶ÔÆ룬ÓÐÖúÓÚ¼Ó¿ì¼ÆËã»úµÄÈ¡ÊýËٶȣ¬·ñÔò¾ÍµÃ¶à»¨Ö¸ÁîÖÜÆÚ¡£
×Ö½Ú¶ÔÆëÔ­Ôò
½á¹¹ÌåĬÈϵÄ×Ö½Ú¶ÔÆëÒ»°ãÂú×ãÈý¸ö×¼Ôò£º
1) ½á¹¹Ìå±äÁ¿µÄÊ×µØÖ·Äܹ»±»Æä×î¿í»ù±¾ÀàÐͳÉÔ±µÄ´óСËùÕû³ý£»
2) ½á¹¹Ìåÿ¸ö³ÉÔ±Ïà¶ÔÓڽṹÌåÊ×µØÖ·µÄÆ«ÒÆÁ¿£¨offset£©¶¼ÊdzÉÔ±×ÔÉí´óСµÄÕûÊý±¶£¬ÈçÓÐÐèÒª±àÒëÆ÷»áÔÚ³ÉÔ±Ö®¼ä¼ÓÉÏÌî³ä×Ö½Ú£¨internal adding£©£»
3) ½á¹¹ÌåµÄ×Ü´óСΪ½á¹¹ ......

MATLABÓëC/C++»ìºÏ±à³ÌÖ®MATLABµ÷ÓÃC³ÌÐò

ͨ¹ý°ÑºÄʱ³¤µÄº¯ÊýÓÃcÓïÑÔʵÏÖ£¬²¢±àÒë³Émexº¯Êý¿ÉÒÔ¼Ó¿ìÖ´ÐÐËٶȡ£Matlab±¾ÉíÊDz»´øcÓïÑԵıàÒëÆ÷µÄ£¬ËùÒÔÒªÇóÄãµÄ»úÆ÷ÉÏÒѾ­°²×°ÓÐVC,BC»òWatcom CÖеÄÒ»ÖÖ¡£Èç¹ûÄãÔÚ°²×°MatlabʱÒѾ­ÉèÖùý±àÒëÆ÷£¬ÄÇôÏÖÔÚÄãÓ¦¸Ã¾Í¿ÉÒÔʹÓÃmexÃüÁîÀ´±àÒëcÓïÑԵijÌÐòÁË¡£Èç¹ûµ±Ê±Ã»ÓÐÑ¡£¬¾ÍÔÚMatlabÀï¼üÈëmex -setup£¬ÏÂÃæÖ»Òª¸ù¾ÝÌáʾһ²½²½ÉèÖþͿÉÒÔÁË¡£ÐèҪעÒâµÄÊÇ£¬½ÏµÍ°æ±¾µÄÔÚÉèÖñàÒëÆ÷·¾¶Ê±£¬Ö»ÄÜʹÓ÷¾¶Ãû³ÆµÄ8×Ö·ûÐÎʽ¡£±ÈÈçÎÒÓõÄVC×°ÔÚ·¾¶C:\PROGRAM FILES\DEVSTUDIOÏ£¬ÄÇÔÚÉèÖ÷¾¶Ê±¾ÍҪд³É£º“C:\PROGRA~1”ÕâÑùÉèÖÃÍêÖ®ºó£¬mex¾Í¿ÉÒÔÖ´ÐÐÁË¡£ÎªÁ˲âÊÔÄãµÄ·¾¶ÉèÖÃÕýÈ·Óë·ñ£¬°ÑÏÂÃæµÄ³ÌÐò´æΪhello.c¡£
/*hello.c*/
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{ mexPrintf("hello,world!\n");
}
¼ÙÉèÄã°Ñhello.c·ÅÔÚÁËC:\TEST\Ï£¬ÔÚMatlabÀïÓÃCD C:\TEST\ ½«µ±Ç°Ä¿Â¼¸ÄΪC:\ TEST\£¨×¢Ò⣬½ö½«C:\TEST\¼ÓÈëËÑË÷·¾¶ÊÇûÓÐÓõģ©¡£ÏÖÔÚÇãº
mex hello.c
Èç¹ûÒ»ÇÐ˳Àû£¬±àÒëÓ¦¸ÃÔÚ³öÏÖ±àÒëÆ÷ÌáʾÐÅÏ¢ºóÕý³£Í˳ö¡£Èç¹ûÄãÒѽ«C:\TEST\¼Ó
ÈëÁËËÑË÷·¾¶£¬ÏÖÔÚ¼üÈëhello£¬³ÌÐò»áÔÚÆÁÄ»ÉÏ´ ......

MATLABÓëC/C++»ìºÏ±à³ÌÖ®MATLABµ÷ÓÃC³ÌÐò

ͨ¹ý°ÑºÄʱ³¤µÄº¯ÊýÓÃcÓïÑÔʵÏÖ£¬²¢±àÒë³Émexº¯Êý¿ÉÒÔ¼Ó¿ìÖ´ÐÐËٶȡ£Matlab±¾ÉíÊDz»´øcÓïÑԵıàÒëÆ÷µÄ£¬ËùÒÔÒªÇóÄãµÄ»úÆ÷ÉÏÒѾ­°²×°ÓÐVC,BC»òWatcom CÖеÄÒ»ÖÖ¡£Èç¹ûÄãÔÚ°²×°MatlabʱÒѾ­ÉèÖùý±àÒëÆ÷£¬ÄÇôÏÖÔÚÄãÓ¦¸Ã¾Í¿ÉÒÔʹÓÃmexÃüÁîÀ´±àÒëcÓïÑԵijÌÐòÁË¡£Èç¹ûµ±Ê±Ã»ÓÐÑ¡£¬¾ÍÔÚMatlabÀï¼üÈëmex -setup£¬ÏÂÃæÖ»Òª¸ù¾ÝÌáʾһ²½²½ÉèÖþͿÉÒÔÁË¡£ÐèҪעÒâµÄÊÇ£¬½ÏµÍ°æ±¾µÄÔÚÉèÖñàÒëÆ÷·¾¶Ê±£¬Ö»ÄÜʹÓ÷¾¶Ãû³ÆµÄ8×Ö·ûÐÎʽ¡£±ÈÈçÎÒÓõÄVC×°ÔÚ·¾¶C:\PROGRAM FILES\DEVSTUDIOÏ£¬ÄÇÔÚÉèÖ÷¾¶Ê±¾ÍҪд³É£º“C:\PROGRA~1”ÕâÑùÉèÖÃÍêÖ®ºó£¬mex¾Í¿ÉÒÔÖ´ÐÐÁË¡£ÎªÁ˲âÊÔÄãµÄ·¾¶ÉèÖÃÕýÈ·Óë·ñ£¬°ÑÏÂÃæµÄ³ÌÐò´æΪhello.c¡£
/*hello.c*/
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{ mexPrintf("hello,world!\n");
}
¼ÙÉèÄã°Ñhello.c·ÅÔÚÁËC:\TEST\Ï£¬ÔÚMatlabÀïÓÃCD C:\TEST\ ½«µ±Ç°Ä¿Â¼¸ÄΪC:\ TEST\£¨×¢Ò⣬½ö½«C:\TEST\¼ÓÈëËÑË÷·¾¶ÊÇûÓÐÓõģ©¡£ÏÖÔÚÇãº
mex hello.c
Èç¹ûÒ»ÇÐ˳Àû£¬±àÒëÓ¦¸ÃÔÚ³öÏÖ±àÒëÆ÷ÌáʾÐÅÏ¢ºóÕý³£Í˳ö¡£Èç¹ûÄãÒѽ«C:\TEST\¼Ó
ÈëÁËËÑË÷·¾¶£¬ÏÖÔÚ¼üÈëhello£¬³ÌÐò»áÔÚÆÁÄ»ÉÏ´ ......
×ܼǼÊý:969; ×ÜÒ³Êý:162; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [150] [151] [152] [153] 154 [155] [156] [157] [158] [159]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ