Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

´Óº¯Êý·µ»ØÒ»¸öÊý×éµÄ2ÖÖ·½·¨ (Cר¼Ò±à³Ì p230)

ÑϸñÀ´Ëµ£¬ÎÞ·¨´Óº¯Êý·µ»ØÒ»¸öÊý×飬µ«¿ÉÒÔ´Óº¯Êý·µ»ØÒ»¸öÖ¸ÏòÈκÎÊý¾Ý½á¹¹µÄÖ¸Õ룬°üÀ¨Ò»¸öÖ¸ÏòÊý×éµÄÖ¸Õë¡£
Ò»ÖÖ·½Ê½ÈçÏ£º
#include <stdio.h>
#include <stdlib.h>
int (*func())[20];//funcÊÇÒ»¸öº¯Êý£¬Ëü·µ»ØÒ»¸öÖ¸Ïò°üÀ¨20¸öintÔªËØµÄÊý×éµÄÖ¸Õë
int main(void)
{
        int (*result)[20];
        int i = 0;
        result = func();
        for(i = 0; i < 20; i++){
                printf("%d\n", (*result)[i]);
        }
        free(result);
        exit(0);
}
int (*func())[20]
{
        int (*a)[20];
        int i = 0;
        a = calloc(20, sizeof(int));
        if(a == NULL){
                perror("calloc error");
                exit(1);
        }
        for(i = 0; i < 20; i++){
                a[0][i] = i;
        }
        return a;
}
ǧÍòҪעÒ⣺²»ÄÜ´Óº¯ÊýÖзµ»ØÒ»¸öÖ¸Ïòº¯ÊýµÄ¾Ö²¿±äÁ¿µÄÖ¸Õë¡£
ÁíÒ»ÖÖ·½Ê½ÈçÏ£º
#include <stdio.h>
#include <stdlib.h>
struct tag{
        int array[20];
}x, y;
struct tag func(void);
int main(void)
{
     &n


Ïà¹ØÎĵµ£º

VB/C++/C#´®¿ÚͨѶԴ´úÂ롾¸½ÏêϸעÊÍ¡¿


VB
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    MSComm1.CommPort = i1
    MSComm1.PortOpen = True
    MSComm1.InputMode = comInputModeBinary
    MSComm1.InBufferCount = 0
& ......

CÃæÊÔÌ⣨ÕûÀí,¸üÐÂÖÐ...)

1.ÓÃÔ¤´¦ÀíÖ¸Áî#defineÉùÃ÷Ò»¸ö³£Êý£¬±íÃ÷1ÄêÓжàÉÙÃ루ÈòÄêºöÂÔ£©
#define SECONDS_PER_YEAR  (60*60*24*365)UL
2.дһ¸ö“±ê×¼”ºê MIN£¬ÊäÈëÁ½¸ö²ÎÊý²¢·µ»Ø½ÏСµÄÒ»¸ö
#define MIN(A,B) ( ( (A)<=(B) )?(A):(B) )
3.Ô¤´¦Àí±êʶ#errorµÄÄ¿µÄÊÇʲô?
Í£Ö¹±àÒë²¢ÏÔʾ³ö´íÐÅÏ¢
4.ÓÃCÓïÑÔ±àдһ¸öËÀÑ ......

C/C++ÊÇ×îÖ÷ÒªµÄ±à³ÌÓïÑÔ,ÕâÀïÁгöÁË50ÃûÓÅÐãÍøÕ¾

C/C++ÊÇ×îÖ÷ÒªµÄ±à³ÌÓïÑÔ¡£ÕâÀïÁгöÁË50ÃûÓÅÐãÍøÕ¾ºÍÍøÒ³Çåµ¥£¬ÕâÐ©ÍøÕ¾Ìṩc/c++Ô´´úÂë ¡£Õâ·ÝÇåµ¥ÌṩÁËÔ´´úÂëµÄÁ´½ÓÒÔ¼°ËüÃǵÄС˵Ã÷¡£ÎÒÒѾ¡Á¦°üÀ¨×î¼ÑµÄC/C++Ô´´úÂëµÄÍøÕ¾¡£Õâ²»ÊÇÒ»¸öÍêÕûµÄÇåµ¥£¬ÄúÓн¨Òé¿ÉÒÔÁªÏµÎÒ£¬ÎÒ½«»¶Ó­ÄúµÄ½¨ Ò飬ÒÔ½øÒ»²½¼ÓÇ¿Õâ·½ÃæµÄÇåµ¥¡£
1¡¢http://snippets.dzone.com/tag/c/ --ÊýÒÔǧ ......

¼¸ÖÖC/C++µÄº¯Êýѹջ·½Ê½

Ò»£¬²»Í¬¹Ø¼ü×Ö£¬ÏµÍ³Ñ¹Õ»·½Ê½
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¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ² ......

C ÓïÑÔÊý¾Ý¶ÔÆë

#include <stdio.h>    
struct Foo1
{
   char a;
   int  b;
   char c;
   int  d;
};
#pragma pack (2)
struct Foo2
{
   char a;
   int  b;
   char c;
   int  d; ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ