c/c++µÄ֪ʶµãÊÕ¼¯
1.¶¯Ì¬»ñµÃÄÚ´æµÄ´úÂë:
void GetMemory(char **p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
}
char* GetMemory2(int num)
{
char* p = (char *)malloc(sizeof(char) * num);
return p;
}
------------------------------------------
´íÎóµÄ´úÂë:
void GetMemory3(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}///////////////´íÎóÔÚÄÄÀï,ÎҾͲ»Ëµ,×Ô¼ºÈ¥²é.
2.strcpy()µÄ´úÂë:
char* strcpy(char* strDest,const char* strSrc)
{
if(strDest==NULL || strSrc==NULL) return NULL;
char* pStr=strDest;
while((*strDest++=*strSrc++)!='\0)
NULL;
return pStr;
}
3.memcpy()µÄ´úÂë:
void* memcpy(char* strDest,const char* strSrc,size_t size)
{
if(strDest==NULL||strSrc==NULL) return NULL;
if(size <=0) return NULL;
char* pStr=strDest;
while(size-->0)
*strDest++=*strSrc++;
return pStr;
}
4.¹ØÓÚsizeof²Ù×÷·û:
char 1
short 2
short int 2
signed short 2
unsigned short 2
int 4
long
Ïà¹ØÎĵµ£º
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/C++ÖУ¬ÄÚ´æÖÐÊý¾Ý´æ´¢·Ö³É4¸öÇø£¬·Ö±ðÊǶѡ¢Õ»¡¢È«¾Ö/¾²Ì¬´æ´¢ÇøºÍ³£Á¿´æ´¢Çø¡£
Õ»(stack)£¬¾ÍÊÇÄÇЩÓɱàÒëÆ÷ÔÚÐèÒªµÄʱºò·ÖÅ䣬ÔÚ²»ÐèÒªµÄʱºò×Ô¶¯Çå³ýµÄ±äÁ¿µÄ´æ´¢Çø¡£ÀïÃæµÄ±äÁ¿Í¨³£ÊǾֲ¿±äÁ¿¡¢º¯Êý²ÎÊýµÈ¡£
¶Ñ(heap)£¬Ò»°ãÓ ......
1. java ÊÇÔËÐÐÔÚjvmÉϵģ¬Ö®ËùÒÔ˵ËüµÄ¿ÉÒÆÖ²ÐÔÇ¿£¬ÊÇÒòΪjvm¿ÉÒÔ°²×°µ½ÈκεÄϵͳ
c++²»ÊDz»ÄÜÔÚÆäËûϵͳÔËÐУ¬¶øÊÇc++ÔÚ²»Í¬µÄϵͳÉÏÔËÐУ¬ÐèÒª²»Í¬µÄ±àÂ루ÕâÒ»µã²»Èçjava£¬Ö»±àдһ´Î´úÂ룬µ½´¦ÔËÐУ©
2. java ÔÚweb Ó¦ÓÃÉϾßÓÐc++ Î޿ɱÈÄâµÄÓÅÊÆ
3. javaÔÚ×ÀÃæ³ÌÐòÉϲ»Èç ......
Ò»£¬²»Í¬¹Ø¼ü×Ö£¬ÏµÍ³Ñ¹Õ»·½Ê½
1£¬Èç¹ûº¯ÊýfuncÊÇ__cdecl(VCϵÄĬÈϵ÷Ó÷½Ê½)£¬µ÷ÓÃʱÇé¿öÈçÏÂ
int main()
{
//²ÎÊý´ÓÓÒµ½×óѹջ
push 4
push 3
push 2
push 1
call func
add esp 0x10 //µ÷ÓÃÕ߻ָ´¶ÑÕ»Ö¸Õëesp£¬4¸ö²ÎÊýµÄ´óСÊÇ0x10(4x4)
}
Cµ÷ÓÃÔ¼¶¨£¨¼´ÓÃ__cdecl¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ² ......