´Óº¯Êý·µ»ØÒ»¸öÊý×éµÄ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
Ïà¹ØÎĵµ£º
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 ......
Í·Îļþregex.hÖж¨ÒåÁËc/c++ʹÓÃÕýÔò±í´ïʽµÄº¯Êý£º regcomp(), regexec(), regerror(), and regfree() ¡£regcomp()±àÒëÕýÔò±í´ïʽ£¬regexec()Æ¥ÅäÕýÔò±í´ïʽ£¬ regfree()ÊÍ·ÅÕýÔò±í´ïʽ£¬regerror()±¨¸æÕýÔò±í´ïʽ´íÎóÐÅÏ¢¡£Ê¹Ó÷½·¨ÈçÏ´úÂëËùʾ£º
static string merge_path(const string bas ......
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ÓïÑÔ±àдһ¸öËÀÑ ......
Ò»£¬²»Í¬¹Ø¼ü×Ö£¬ÏµÍ³Ñ¹Õ»·½Ê½
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¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ² ......