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
Ïà¹ØÎĵµ£º
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
& ......
ÔÚC/C++ÖУ¬ÄÚ´æÖÐÊý¾Ý´æ´¢·Ö³É4¸öÇø£¬·Ö±ðÊǶѡ¢Õ»¡¢È«¾Ö/¾²Ì¬´æ´¢ÇøºÍ³£Á¿´æ´¢Çø¡£
Õ»(stack)£¬¾ÍÊÇÄÇЩÓɱàÒëÆ÷ÔÚÐèÒªµÄʱºò·ÖÅ䣬ÔÚ²»ÐèÒªµÄʱºò×Ô¶¯Çå³ýµÄ±äÁ¿µÄ´æ´¢Çø¡£ÀïÃæµÄ±äÁ¿Í¨³£ÊǾֲ¿±äÁ¿¡¢º¯Êý²ÎÊýµÈ¡£
¶Ñ(heap)£¬Ò»°ãÓ ......
Ò»£¬²»Í¬¹Ø¼ü×Ö£¬ÏµÍ³Ñ¹Õ»·½Ê½
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¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ² ......
¾Ù¸ö¼òµ¥Àý×Ó£ºÓöþÖØÑ»·Êä³ö1-100 Êý×Ö£»
µ±È»ÎÒÕâÀïÊǾÙÀý×ÓÕë¶Ô¶þÖØ¼°ÒÔÉϵÄÑ»·£¬
ÍêÈ«¿ÉÒÔʹÓõ¥Ñ»·£¬ÓÚÊDZã·É¿ìµÄÍê³ÉÁËÒÔÏÂ
´úÂ룺
ÈçϾÍÓÃC/C++¾ÙÀý¡£
C++´úÂë(VS2008):
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(in ......