C³ÌÐòÓë»ã±à³ÌÐò»ìºÏ±à³Ì
C³ÌÐòÓë»ã±à³ÌÐòÏ໥µ÷ÓùæÔò
ΪÁËʹµ¥¶À±àÒëµÄCÓïÑÔ³ÌÐòºÍ»ã±à³ÌÐòÖ®¼äÄܹ»Ï໥µ÷Ó㬱ØÐëΪ×Ó³ÌÐò¼äµÄµ÷Óùæ
¶¨Ò»¶¨µÄ¹æÔò¡£ATPCS£¬¼´ARM£¬ Thumb¹ý³Ìµ÷Óñê×¼(ARM/Thumb Procedure Call
Standard)£¬ÊÇARM³ÌÐòºÍThumb³ÌÐòÖÐ×Ó³ÌÐòµ÷ÓõĻù±¾¹æÔò£¬Ëü¹æ¶¨ÁËһЩ×Ó³ÌÐò¼äµ÷ÓÃ
µÄ»ù±¾¹æÔò£¬Èç×Ó³ÌÐòµ÷Óùý³ÌÖеļĴæÆ÷µÄʹÓùæÔò£¬¶ÑÕ»µÄʹÓùæÔò£¬²ÎÊýµÄ´«µÝ¹æÔò
µÈ¡£
ÏÂÃæ½áºÏʵ¼Ê½éÉܼ¸ÖÖATPCS¹æÔò£¬Èç¹û¶ÁÕßÏëÁ˽â¸ü¶àµÄ¹æÔò£¬¿ÉÒԲ鿴Ïà¹ØµÄÊé
¼®¡£
1£® »ù±¾ATPCS
»ù±¾ATPCS¹æ¶¨ÁËÔÚ×Ó³ÌÐòµ÷ÓÃʱµÄһЩ»ù±¾¹æÔò£¬°üÀ¨ÏÂÃæ3·½ÃæµÄÄÚÈÝ£º
(1)¸÷¼Ä´æÆ÷µÄʹÓùæÔò¼°ÆäÏàÓ¦µÄÃû³Æ¡£
(2)Êý¾ÝÕ»µÄʹÓùæÔò¡£
(3)²ÎÊý´«µÝµÄ¹æÔò¡£
Ïà¶ÔÓÚÆäËüÀàÐ͵ÄATPCS£¬Âú×ã»ù±¾ATPCSµÄ³ÌÐòµÄÖ´ÐÐËٶȸü¿ì£¬ËùÕ¼ÓõÄÄÚ´æ¸üÉÙ¡£
µ«ÊÇËü²»ÄÜÌṩÒÔϵÄÖ§³Ö£º ARM³ÌÐòºÍThumb³ÌÐòÏ໥µ÷Ó㬠Êý¾ÝÒÔ¼°´úÂëµÄλÖÃÎÞ¹Ø
µÄÖ§³Ö£¬×Ó³ÌÐòµÄ¿ÉÖØÈëÐÔ£¬Êý¾ÝÕ»¼ì²éµÄÖ§³Ö¡£
¶øÅÉÉúµÄÆäËû¼¸ÖÖÌØ¶¨µÄATPCS¾ÍÊÇÔÚ»ù±¾ATPCSµÄ»ù´¡ÉÏÔÙÌí¼ÓÆäËûµÄ¹æÔò¶øÐγÉ
µÄ¡£ÆäÄ¿µÄ¾ÍÊÇÌṩÉÏÊöµÄ¹¦ÄÜ¡£
2£® ¼Ä´æÆ÷µÄʹÓùæÔò
¼Ä´æÆ÷µÄʹÓñØÐëÂú×ãÏÂÃæµÄ¹æÔò£º
(1) ×Ó³ÌÐò¼äͨ¹ý¼Ä´æÆ÷R0¡«R3À´´«µÝ²ÎÊý¡£Õâʱ£¬¼Ä´æÆ÷R0¡«R3¿ÉÒÔ¼Ç×÷A0¡«A3¡£
±»µ÷ÓõÄ×Ó³ÌÐòÔÚ·µ»ØÇ°ÎÞÐè»Ö¸´¼Ä´æÆ÷R0¡«R3µÄÄÚÈÝ¡£
(2) ÔÚ×Ó³ÌÐòÖУ¬Ê¹ÓüĴæÆ÷R4¡«RllÀ´±£´æ¾Ö²¿±äÁ¿¡£Õâʱ£¬¼Ä´æÆ÷R4¡«R11¿ÉÒÔ
¼Ç×÷V1¡«V8¡£Èç¹ûÔÚ×Ó³ÌÐòÖÐʹÓõ½Á˼ĴæÆ÷V1¡«V8ÖеÄijЩ¼Ä´æÆ÷£¬×Ó³ÌÐò½øÈëʱ±ØÐë
±£´æÕâЩ¼Ä´æÆ÷µÄÖµ£¬ÔÚ·µ»ØÇ°±ØÐë»Ö¸´ÕâЩ¼Ä´æÆ÷µÄÖµ£»¶ÔÓÚ×Ó³ÌÐòÖÐûÓÐÓõ½µÄ¼Ä´æÆ÷
Ôò²»±Ø½øÐÐÕâЩ²Ù×÷¡£ÔÚThumb³ÌÐòÖУ¬Í¨³£Ö»ÄÜʹÓüĴæÆ÷R4¡«R7À´±£´æ¾Ö²¿±äÁ¿¡£
(3) ¼Ä´æÆ÷R12ÓÃ×÷×Ó³ÌÐò¼äscratch¼Ä´æÆ÷£¬¼Ç×÷IP¡£ÔÚ×Ó³ÌÐò¼äµÄÁ¬½Ó´úÂë¶ÎÖÐ
³£ÓÐÕâÖÖʹÓùæÔò¡£
(4) ¼Ä´æÆ÷R13ÓÃ×÷Êý¾ÝÕ»Ö¸Õ룬¼Ç×÷SP¡£ÔÚ×Ó³ÌÐòÖмĴæÆ÷R13²»ÄÜÓÃ×÷ÆäËûÓÃ;¡£
¼Ä´æÆ÷SPÔÚ½øÈë×Ó³ÌÐòʱµÄÖµºÍÍ˳ö×Ó³ÌÐòʱµÄÖµ±ØÐëÏàµÈ¡£
(5) ¼Ä´æÆ÷R14³ÆÎªÁ¬½Ó¼Ä´æÆ÷£¬¼Ç×÷LR¡£ËüÓÃÓÚ±£´æ×Ó³ÌÐòµÄ·µ»ØµØÖ·¡£Èç¹ûÔÚ
×Ó³ÌÐòÖб£´æÁË·µ»ØµØÖ·£¬¼Ä´æÆ÷R14Ôò¿ÉÒÔÓÃ×÷ÆäËûÓÃ;¡£
(6) ¼Ä´æÆ÷R15ÊdzÌÐò¼ÆÊýÆ÷£¬¼Ç×÷PC¡£Ëü²»ÄÜÓÃ×÷ÆäËûÓÃ;¡£
3.²ÎÊý´«µÝ¹æÔò
¸ù¾Ý²ÎÊý¸öÊýÊÇ·ñ¹Ì¶¨¿ÉÒÔ½«×Ó³ÌÐò·ÖΪ²ÎÊý¸öÊý¹Ì¶¨µÄ(nonvariadic)×Ó³ÌÐòºÍ²ÎÊý
¸öÊý¿É±äµÄ(variadic)×Ó³ÌÐò¡£
Ïà¹ØÎĵµ£º
http://en.wikipedia.org/wiki/C_preprocessor
C preprocessor
from Wikipedia, the free encyclopedia
Jump to:navigation, search
The C preprocessor (cpp) is the preprocessor for the C programming language. In many C implementations, it is a separate program invoked by the compiler as the first part ......
#include<stdio.h>
#define N 8
void input(int n,int p[N][N])
{
int i,j;
for(i=0;i<n;i++)
{
printf("please input the %d line:\n",i+1);
for(j=0;j<n;j++)
{
scanf("%d",&p[i][j]);
}
}
}
void output(int n,int p[N][N])
......
1) goto
goto Ö»ÄÜÔÚÒ»¸öº¯ÊýÄÚÌø×ª¡£½¨ÒéÉÙÓã¬Ê¹µÃ³ÌÐòά»¤ÆðÀ´ÈÝÒ׳ö´í£»µ«ÊÇ£¬ÔÚÓжà¸öÑ»·Çé¿öÏÂÌø×ª£¬ÓÐʱÓÃgoto¿ÉÒÔʹµÃÎÊÌâ±äµÃ¼òµ¥¡£
class A
{
public:
A(){}
~A(){}
};
&nbs ......
´ÓÄ³Î»ÍøÓѵIJ©¿Í¿´µ½¹ØÓÚextern "C"Ó÷¨µÄÎÄÕ£¬½²µÃ·Ç³£Í¸³¹£¬ÓÚÊǾÍÕª³ÁËÎÒ֮ǰ²»ÉõÁ˽âµÄ²¿·Ö×ö¸öbackup¡£
Ò»¡¢´ÓCÓëC++±àÒëÁ¬½Ó·½Ê½ÉîÈëÀí½âextern "C"
<1>.CºÍC++¶Ôº¯ÊýµÄ´¦Àí·½Ê½ÊDz»Í¬µÄ.±»extern "C"ÐÞÊεıäÁ¿ºÍº¯ÊýÊǰ´ÕÕCÓïÑÔ·½Ê½±àÒëºÍÁ¬½ÓµÄ.extern "C"ÓÃÓÚʵÏÖC++ÓëC¼°ÆäËüÓïÑԵĻìºÏ±à³Ì¡ ......
CÓïÑÔ³ÌÐò¿ÉÒÔ¿´³ÉÓÉһϵÁÐÍⲿ¶ÔÏ󹹳ɣ¬ÕâЩÍⲿ¶ÔÏó¿ÉÄÜÊDZäÁ¿»òº¯Êý¡£¶øÄÚ²¿±äÁ¿ÊÇÖ¸¶¨ÒåÔÚº¯ÊýÄÚ²¿µÄº¯Êý²ÎÊý¼°±äÁ¿¡£Íⲿ±äÁ¿¶¨ÒåÔÚº¯ÊýÖ®Í⣬Òò´Ë¿ÉÒÔÔÚÐí¶àº¯ÊýÖÐʹÓá£ÓÉÓÚCÓïÑÔ²»ÔÊÐíÔÚÒ»¸öº¯ÊýÖж¨ÒåÆäËüº¯Êý£¬Òò´Ëº¯Êý±¾ÉíÖ»ÄÜÊÇ“ÍⲿµÄ”¡£
ÓÉÓÚ ......