cʵÏֵĶÁ´óÎļþ·½·¨£¨Ô´´úÂ룩
static char *file2memory(FILE *file, long *size)
{
char buffer[1024];
char *string=NULL;
char *newstring=NULL;
long len=0;
long stringlen=0;
if(file) {
while((len = fread(buffer, 1, sizeof(buffer), file))) {
if(string) {
newstring = (char*)realloc(string, len+stringlen+1);
if(newstring)
string = newstring;
else
break; /* no more strings attached! :-) */
}
else
string = (char*)malloc(len+1);
memcpy(&string[stringlen], buffer, len);
stringlen+=len;
}
if (string) {
string[stringlen] = 0;
}
*size = stringlen;
return string;
}
else
return NULL; /* no string */
}
Ïà¹ØÎĵµ£º
C/C++ÖÐStaticµÄ×÷ÓÃÏêÊö
1.ÏÈÀ´½éÉÜËüµÄµÚÒ»ÌõÒ²ÊÇ×îÖØÒªµÄÒ»Ìõ£ºÒþ²Ø¡£
µ±ÎÒÃÇͬʱ±àÒë¶à¸öÎļþʱ£¬ËùÓÐδ¼Óstaticǰ׺µÄÈ«¾Ö±äÁ¿ºÍº¯Êý¶¼¾ßÓÐÈ«¾Ö¿É¼ûÐÔ¡£ÎªÀí½âÕâ¾ä»°£¬ÎÒ¾ÙÀýÀ´ËµÃ÷¡£ÎÒÃÇҪͬʱ±àÒëÁ½¸öÔ´Îļþ£¬Ò»¸öÊÇa.c£¬ÁíÒ»¸öÊÇmain.c.
ÏÂÃæÊÇa.cµÄÄÚÈÝ£º
char a = 'A'; // global variable
void ......
ÒÔÇ°Ôø¾×ܽá¹ýһƪ(http://www.cppblog.com/franksunny/archive/2007/11/29/37510.html
)£¬¹ØÓÚÔÚ
C
ÖÐÈçºÎµ÷ÓÃ
C++
µÄ´úÂ룬µ±Ê±²¢Î´×öÍêÈ«µÄÕ¹¿ª£¬Ö»ÊǼòµ¥µÄ×öÁËϵ÷ÊÔ£¬×î½ü¿´µ½Ò»¸öÌâĿҪÇóʵÏÖ
C
ºÍ
C++
ÖдúÂëµÄ»¥Ïàµ÷Óã¬Æä½á¹ûËäÈ»¶¼ÊÇͨ¹ý
extern “C”
À´ÊµÏÖ
£¬µ«ÊǾßÌ廹ÊÇÓÐЩ²î±ðµÄ¡ ......
- ҪʹÓöÏÑÔ¶Ôº¯Êý²ÎÊý½øÐÐÈ·ÈÏ
- ΪÁ˲»±ØÒªµÄ¿ªÏú£¬¿ÉÒÔ½öʹÓöÏÑÔ£¬¶ø²»Òªreturn
ÍøÉÏÓÐÈËдµÄstrcpy´úÂ룬×öÁËÌ«¶àµÄ³ö´í´¦Àí£¬µ¼ÖÂÐÔÄܵÍÏ£¬Æäʵû±ØÒª£¬ÓÃassert¾ÍÐÐÁË£¬ÕâÑùÔÚdebugģʽÏÂÄܲ¶×½´íÎó£¬releaseÏÂÓÖ²»Ó°ÏìÐÔÄÜ¡£
- ÊéÉÏÌṩµÄmemcpyµÄ·¶Àý
void memcpy(void* pvT ......
ºê
È«´óд, Èç¹û±ØÒª, ÓÃÁ¬×Ö·ûÁ¬½Óµ¥´Ê
#define SIZE_LIMIT 1024
#define CONFIG_DEBUG 1
#define PRODUCT_ID 0x1123
ö¾Ù
µ¥´ÊÊ××Öĸ´óд, ²»ÓÃÁ¬×Ö·û
enum {
KeyNumLock,
KeyShift,
Key1,
KayA
} Key;
......
cÎļþ²Ù×÷¾ÍÕâô¼òµ¥
Îļþ²Ù×÷£¬ÉÔ΢һ×ܽá.¡£
FILEÊÇÒ»¸ö½á¹¹ÌåÀàÐÍ£¬ÔÚTCºÍVSÖж¨Òå²»Ïàͬ£¬ËûµÄ×÷ÓþÍÊÇÔÚfopen()Ö®ºó±£´æÁË´ò¿ªÎļþµÄÐÅÏ¢¡£Ò²¾ÍÊÇ˵²Ù×÷ϵͳ°ïÎÒÃÇÍê³ÉÁË£¬ÎÒÃDz»Óùܣ¬´ó´ó½µµÍÁËÄѶȰɡ£
Ê×ÏÈÎÒÃÇ¿¼ÂÇ϶ÔÎļþµÄ²Ù×÷£¬ÎļþÀàÐÍ·ÖΪÎı¾ºÍ¶þ½øÖÆ¡£¶ÁдÎļþµÄº¯ÊýÒ»°ãÇ°ÃæÓиöf£¬Ò²¾Í±íʾfile£¬open ......