1.ÒýÑÔ ±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û-¡£
Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì
¶È£¬ÎÒÃÇÄÜÕæÕýдºÃÒ»¸östrcpyº¯ÊýÂð£¿ÎÒÃǶ¼¾õµÃ×Ô¼ºÄÜ£¬¿ÉÊÇÎÒÃÇд³öµÄstrcpyºÜ¿ÉÄÜÖ»ÄÜÄõ½10·ÖÖеÄ2·Ö¡£¶ÁÕ߿ɴӱ¾ÎÄ¿´µ½strcpy
º¯Êý´Ó2·Öµ½10·Ö½â´ðµÄÀý×Ó£¬¿´¿´×Ô¼ºÊôÓÚʲôÑùµÄ²ã´Î¡£´ËÍ⣬»¹ÓÐÒ»Ð©ÃæÊÔÌ⿼²éÃæÊÔÕßÃô½ÝµÄ˼άÄÜÁ¦¡£
·ÖÎöÕâÐ©ÃæÊÔÌ⣬±¾Éí°üº¬ºÜÇ¿µÄȤζÐÔ£»¶ø×÷ΪһÃûÑз¢ÈËÔ±£¬Í¨¹ý¶ÔÕâÐ©ÃæÊÔÌâµÄÉîÈëÆÊÎöÔò¿É½øÒ»²½ÔöÇ¿×ÔÉíµÄÄÚ¹¦¡£
2.ÕÒ´íÌâ
ÊÔÌâ1£º
void test1()
{
char string[10];
char* str1 = "0123456789";
strcpy( string, str1 ); }
ÊÔÌâ2£º
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
{ str1 = 'a'£»
}
strcpy( string, str1 )£» &nbs ......
1.ÒýÑÔ ±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û-¡£
Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì
¶È£¬ÎÒÃÇÄÜÕæÕýдºÃÒ»¸östrcpyº¯ÊýÂð£¿ÎÒÃǶ¼¾õµÃ×Ô¼ºÄÜ£¬¿ÉÊÇÎÒÃÇд³öµÄstrcpyºÜ¿ÉÄÜÖ»ÄÜÄõ½10·ÖÖеÄ2·Ö¡£¶ÁÕ߿ɴӱ¾ÎÄ¿´µ½strcpy
º¯Êý´Ó2·Öµ½10·Ö½â´ðµÄÀý×Ó£¬¿´¿´×Ô¼ºÊôÓÚʲôÑùµÄ²ã´Î¡£´ËÍ⣬»¹ÓÐÒ»Ð©ÃæÊÔÌ⿼²éÃæÊÔÕßÃô½ÝµÄ˼άÄÜÁ¦¡£
·ÖÎöÕâÐ©ÃæÊÔÌ⣬±¾Éí°üº¬ºÜÇ¿µÄȤζÐÔ£»¶ø×÷ΪһÃûÑз¢ÈËÔ±£¬Í¨¹ý¶ÔÕâÐ©ÃæÊÔÌâµÄÉîÈëÆÊÎöÔò¿É½øÒ»²½ÔöÇ¿×ÔÉíµÄÄÚ¹¦¡£
2.ÕÒ´íÌâ
ÊÔÌâ1£º
void test1()
{
char string[10];
char* str1 = "0123456789";
strcpy( string, str1 ); }
ÊÔÌâ2£º
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
{ str1 = 'a'£»
}
strcpy( string, str1 )£» &nbs ......
write by ¾ÅÌìÑãôá(JTianLing) -- blog.csdn.net/vagrxie
ÌÖÂÛÐÂÎÅ×é¼°Îļþ
ÔÎÄÀ´×Ô£º¡¶JavaScript for C & Python programmers
¡·£¬¾¹ý×÷ÕßCanisÔÊÐíºó·Ò룬¼´Ê¹×ªÔØÇ븽´ø´ËÁ´½Ó¡£
ǰÑÔ£ººÜÉٸɷÒëµÄÊÂÇ飬ÀÛ£¬ÐÁ¿à£¬²»ÄÜ·¢»Ó£¬µäÐ͵ķÑÁ¦²»Ìֺã¬×î½üÎÞÁÄ£¬ÏëÔÚÍøÒ³ÉÏÏÔʾ¶¯»£¨ÒòΪCSDNÌùͼ²»ÊDz»ÈÃÌùÁËÂ£¬Java
appletËäÈ»ÒѾ¸ã¶¨ÁË£¬µ«ÊÇ×ܸоõÕâ²»ÊÇJavaµÄÊÀ½ç£¬ËùÒÔÏë´ó¸ÅѧϰһÏÂJavaScriptºóÔÙ×ö¾ö¶¨£¬(-_-!´ÓÃüÃûÉÏ¿´ÆäʵÏñÊÇ»»³ÉÁË
JavaµÄ½Å±¾-_-!£©ÍøÉÏÀàËÆJAVA for C++
programmersµÄÎÄÕºܶ࣬µ«ÊÇjsÀàËÆµÄÎÄÕÂÈ´ºÜÉÙ£¬Ò»·½Ãæ¿ÉÄܵÄÈ·java¸ü¼ÓÁ÷ÐУ¬ÁíÒ»·½Ãæ¿ÉÄÜÒ»°ãµÄC/C++³ÌÐòÔ±ÓëjsµÄÁìÓò²îµÄÌ«
Ô¶£¬Ã»ÓдËÐèÇ󣬱¾ÎÄÒ²²»ÊÇΪC++³ÌÐòԱдµÄ£¬ÊÇΪcºÍpython³ÌÐòԱдµÄ¡£
·ÒëÍêºó£¬¾Í¸öÈ˸оõ£¬±¾ÎÄÉõÖÁ²»ÄÜËãÊÇÒ»¸ö½ÏºÃµÄÖ¸ÄÏ£¬´ó¸Å¿ÉÒÔ¿´×öÒ»¸öC,Python³ÌÐòԱѧϰ
JavaScriptʱµÄ±§Ô¹£¬È«ÎÄÓÐÌ«¶à×÷Õߵı§Ô¹£¬Õë¶ÔJavaScript²»Ñ°³£µÄÓï·¨Ìá³öÁ˺ܶ࿴·¨£¬Óñ¾ÎÄÀ´È«ÃæµÄÁ˽âJavascriptÊÇ
²»Ì«¿ÉÄܵ쬵«ÊÇÁ˽âÒ»ÏÂ×÷Ϊһ¸öC,Python³ÌÐòÔ±£¬Ñ§Ï°JavaScriptÓ¦¸Ã×¢ÒâÄÄÐ©ÆæÌØµÄµØ·½£¬Ò²²»ÊÇûÓкô¦¡£
£¨ÒÔÏÂÎÒµÄ ......
write by ¾ÅÌìÑãôá(JTianLing) -- blog.csdn.net/vagrxie
ÌÖÂÛÐÂÎÅ×é¼°Îļþ
ÔÎÄÀ´×Ô£º¡¶JavaScript for C & Python programmers
¡·£¬¾¹ý×÷ÕßCanisÔÊÐíºó·Ò룬¼´Ê¹×ªÔØÇ븽´ø´ËÁ´½Ó¡£
ǰÑÔ£ººÜÉٸɷÒëµÄÊÂÇ飬ÀÛ£¬ÐÁ¿à£¬²»ÄÜ·¢»Ó£¬µäÐ͵ķÑÁ¦²»Ìֺã¬×î½üÎÞÁÄ£¬ÏëÔÚÍøÒ³ÉÏÏÔʾ¶¯»£¨ÒòΪCSDNÌùͼ²»ÊDz»ÈÃÌùÁËÂ£¬Java
appletËäÈ»ÒѾ¸ã¶¨ÁË£¬µ«ÊÇ×ܸоõÕâ²»ÊÇJavaµÄÊÀ½ç£¬ËùÒÔÏë´ó¸ÅѧϰһÏÂJavaScriptºóÔÙ×ö¾ö¶¨£¬(-_-!´ÓÃüÃûÉÏ¿´ÆäʵÏñÊÇ»»³ÉÁË
JavaµÄ½Å±¾-_-!£©ÍøÉÏÀàËÆJAVA for C++
programmersµÄÎÄÕºܶ࣬µ«ÊÇjsÀàËÆµÄÎÄÕÂÈ´ºÜÉÙ£¬Ò»·½Ãæ¿ÉÄܵÄÈ·java¸ü¼ÓÁ÷ÐУ¬ÁíÒ»·½Ãæ¿ÉÄÜÒ»°ãµÄC/C++³ÌÐòÔ±ÓëjsµÄÁìÓò²îµÄÌ«
Ô¶£¬Ã»ÓдËÐèÇ󣬱¾ÎÄÒ²²»ÊÇΪC++³ÌÐòԱдµÄ£¬ÊÇΪcºÍpython³ÌÐòԱдµÄ¡£
·ÒëÍêºó£¬¾Í¸öÈ˸оõ£¬±¾ÎÄÉõÖÁ²»ÄÜËãÊÇÒ»¸ö½ÏºÃµÄÖ¸ÄÏ£¬´ó¸Å¿ÉÒÔ¿´×öÒ»¸öC,Python³ÌÐòԱѧϰ
JavaScriptʱµÄ±§Ô¹£¬È«ÎÄÓÐÌ«¶à×÷Õߵı§Ô¹£¬Õë¶ÔJavaScript²»Ñ°³£µÄÓï·¨Ìá³öÁ˺ܶ࿴·¨£¬Óñ¾ÎÄÀ´È«ÃæµÄÁ˽âJavascriptÊÇ
²»Ì«¿ÉÄܵ쬵«ÊÇÁ˽âÒ»ÏÂ×÷Ϊһ¸öC,Python³ÌÐòÔ±£¬Ñ§Ï°JavaScriptÓ¦¸Ã×¢ÒâÄÄÐ©ÆæÌØµÄµØ·½£¬Ò²²»ÊÇûÓкô¦¡£
£¨ÒÔÏÂÎÒµÄ ......
write by ¾ÅÌìÑãôá(JTianLing) -- blog.csdn.net/vagrxie
ÌÖÂÛÐÂÎÅ×é¼°Îļþ
ÔÎÄÀ´×Ô£º¡¶JavaScript for C & Python programmers
¡·£¬¾¹ý×÷ÕßCanisÔÊÐíºó·Ò룬¼´Ê¹×ªÔØÇ븽´ø´ËÁ´½Ó¡£
ǰÑÔ£ººÜÉٸɷÒëµÄÊÂÇ飬ÀÛ£¬ÐÁ¿à£¬²»ÄÜ·¢»Ó£¬µäÐ͵ķÑÁ¦²»Ìֺã¬×î½üÎÞÁÄ£¬ÏëÔÚÍøÒ³ÉÏÏÔʾ¶¯»£¨ÒòΪCSDNÌùͼ²»ÊDz»ÈÃÌùÁËÂ£¬Java
appletËäÈ»ÒѾ¸ã¶¨ÁË£¬µ«ÊÇ×ܸоõÕâ²»ÊÇJavaµÄÊÀ½ç£¬ËùÒÔÏë´ó¸ÅѧϰһÏÂJavaScriptºóÔÙ×ö¾ö¶¨£¬(-_-!´ÓÃüÃûÉÏ¿´ÆäʵÏñÊÇ»»³ÉÁË
JavaµÄ½Å±¾-_-!£©ÍøÉÏÀàËÆJAVA for C++
programmersµÄÎÄÕºܶ࣬µ«ÊÇjsÀàËÆµÄÎÄÕÂÈ´ºÜÉÙ£¬Ò»·½Ãæ¿ÉÄܵÄÈ·java¸ü¼ÓÁ÷ÐУ¬ÁíÒ»·½Ãæ¿ÉÄÜÒ»°ãµÄC/C++³ÌÐòÔ±ÓëjsµÄÁìÓò²îµÄÌ«
Ô¶£¬Ã»ÓдËÐèÇ󣬱¾ÎÄÒ²²»ÊÇΪC++³ÌÐòԱдµÄ£¬ÊÇΪcºÍpython³ÌÐòԱдµÄ¡£
·ÒëÍêºó£¬¾Í¸öÈ˸оõ£¬±¾ÎÄÉõÖÁ²»ÄÜËãÊÇÒ»¸ö½ÏºÃµÄÖ¸ÄÏ£¬´ó¸Å¿ÉÒÔ¿´×öÒ»¸öC,Python³ÌÐòԱѧϰ
JavaScriptʱµÄ±§Ô¹£¬È«ÎÄÓÐÌ«¶à×÷Õߵı§Ô¹£¬Õë¶ÔJavaScript²»Ñ°³£µÄÓï·¨Ìá³öÁ˺ܶ࿴·¨£¬Óñ¾ÎÄÀ´È«ÃæµÄÁ˽âJavascriptÊÇ
²»Ì«¿ÉÄܵ쬵«ÊÇÁ˽âÒ»ÏÂ×÷Ϊһ¸öC,Python³ÌÐòÔ±£¬Ñ§Ï°JavaScriptÓ¦¸Ã×¢ÒâÄÄÐ©ÆæÌØµÄµØ·½£¬Ò²²»ÊÇûÓкô¦¡£
£¨ÒÔÏÂÎÒµÄ ......
Ò»¡¢ÐÞÊÎÃû£¨Decorated Name£©
C/C++³ÌÐòÖеĺ¯ÊýÔÚÄÚ²¿ÊÇͨ¹ýÐÞÊÎÃûÀ´±êʶµÄ¡£ÐÞÊÎÃûÊÇÔÚº¯Êý¶¨Òå»òÔÐͱàÒë½×¶ÎÓɱàÒëÆ÷´´½¨×Ö·û´®¡£µ±ÄãÔÚLINKµÈ¹¤¾ßÖÐÒªÖ¸¶¨Ò»¸öº¯ÊýÃûʱ£¬»áÓõ½ÐÞÊÎÃû¡£
1¡¢Ê¹ÓÃÐÞÊÎÃû£º
´ó¶àÊýÇé¿öÏ£¬Äã²»±ØÖªµÀº¯ÊýµÄÐÞÊÎÃûÊÇʲô¡£Á¬½ÓÆ÷µÈ¹¤¾ßͨ³£¶¼ÄÜ´¦Àíº¯ÊýδÐÞÊεÄÃû×Ö¡£È»¶ø£¬ÔÚÓÐЩÇé¿öÏ£¬Äã¿ÉÄÜÐèÒªÖ¸¶¨º¯ÊýµÄÐÞÊÎÃû¡£¶ÔÓÚC++ÖØÔØº¯ÊýºÍÌØ¶¨µÄ³ÉÔ±º¯Êý£¨È磺¹¹Ô캯ÊýºÍÎö¹¹º¯Êý£©£¬Äã±ØÐëÖ¸¶¨ÕâЩº¯ÊýµÄÐÞÊÎÃû£¬ÒÔ±ãÁ¬½ÓÆ÷µÈ¹¤¾ßÄܹ»Æ¥ÅäÃû×Ö¡£Í¬Ê±£¬ÄãÒ²±ØÐëÔÚÄÇЩÒýÓÃc»òc£«£«º¯ÊýÃûµÄ»ã±àÔ´ÎļþÖÐʹÓÃÐÞÊÎÃû¡£
2¡¢²é¿´ÐÞÊÎÃû£º
Èç¹ûÄã±àÒëÁËÒ»¸öÔ´Îļþ£¬¸ÃÔ´ÎļþÖаüº¬Á˺¯Êý¶¨Òå»òÔÐÍ£¬Äã¿ÉÒÔ»ñµÃº¯ÊýµÄÐÞÊÎÃûÐÎʽ¡£
(1)ÓñàÒëÆ÷ÁÐ±í£¨compiler listing£©À´²é¿´£º
(i)ͨ¹ý½«ÁбíÎļþÀàÐͱàÒëÆ÷Ñ¡Ïî(/FA[c|s]) ÉèÖÃΪÏÂÃæÖеÄÒ»ÖÖ£¬À´²úÉúÁбíÎļþ£ºAssembly with Machine Code (/FAc); Assembly with Source Code (/FAs); Assembly, Machine Code, and Source (/FAcs).
(ii)ÔÚ²úÉúµÄÁбíÎļþÖУ¬ÕÒµ½°üº¬Î´¾ÐÞÊεĺ¯Êý¶¨ÒåµÄÐС£
(iii)²éÕÒÇ°ÃæÒ»ÐС£PROC NEAR ÃüÁî±êǩǰ¾ÍÊǺ¯Ê ......
#
ÊÇÉú³É×Ö·û´®£º
#define a(x) #x
a(bc
) => "bc"
##
ÊÇÁ¬½Ó£º
#define a(x) abc##x
a(123) => abc123
#error
ÊÇÉú³É±àÒë´íÎóÏûÏ¢£º
#ifdef abc
#error something wrong...
#endif
//Èç¹ûabcÊÇÒѾ¶¨ÒåµÄºê£¬ÄÇô±àÒëµÄʱºò¾Í»áÏÔʾ´íÎóÏûÏ¢something wrong...
ÔÚËùÓеÄÔ¤´¦ÀíÖ¸ÁîÖУ¬#Pragma
Ö¸Áî¿ÉÄÜÊÇ×ÔÓµÄÁË£¬ËüµÄ×÷ÓÃÊÇÉ趨±àÒëÆ÷µÄ״̬»òÕßÊÇָʾ±àÒëÆ÷Íê³ÉÒ»Ð©ÌØ¶¨µÄ¶¯×÷¡£#pragmaÖ¸Áî¶Ôÿ¸ö±àÒëÆ÷¸ø³öÁËÒ»¸ö·½·¨,ÔÚ±£³ÖÓëCºÍ
C++ÓïÑÔÍêÈ«¼æÈݵÄÇé¿öÏÂ,¸ø³öÖ÷»ú»ò²Ù×÷ϵͳרÓеÄÌØÕ÷¡£ÒÀ¾Ý¶¨Òå,±àÒëָʾÊÇ»úÆ÷»ò²Ù× ......
#
ÊÇÉú³É×Ö·û´®£º
#define a(x) #x
a(bc
) => "bc"
##
ÊÇÁ¬½Ó£º
#define a(x) abc##x
a(123) => abc123
#error
ÊÇÉú³É±àÒë´íÎóÏûÏ¢£º
#ifdef abc
#error something wrong...
#endif
//Èç¹ûabcÊÇÒѾ¶¨ÒåµÄºê£¬ÄÇô±àÒëµÄʱºò¾Í»áÏÔʾ´íÎóÏûÏ¢something wrong...
ÔÚËùÓеÄÔ¤´¦ÀíÖ¸ÁîÖУ¬#Pragma
Ö¸Áî¿ÉÄÜÊÇ×ÔÓµÄÁË£¬ËüµÄ×÷ÓÃÊÇÉ趨±àÒëÆ÷µÄ״̬»òÕßÊÇָʾ±àÒëÆ÷Íê³ÉÒ»Ð©ÌØ¶¨µÄ¶¯×÷¡£#pragmaÖ¸Áî¶Ôÿ¸ö±àÒëÆ÷¸ø³öÁËÒ»¸ö·½·¨,ÔÚ±£³ÖÓëCºÍ
C++ÓïÑÔÍêÈ«¼æÈݵÄÇé¿öÏÂ,¸ø³öÖ÷»ú»ò²Ù×÷ϵͳרÓеÄÌØÕ÷¡£ÒÀ¾Ý¶¨Òå,±àÒëָʾÊÇ»úÆ÷»ò²Ù× ......
int main()
{
int a[] = {1,2,3,4,5};
int i;
int * p = a;
for (p = a + 4, i = 0; i < 5; i++) {
printf("%d ",p[-i]);
}
return 0;
}
......
int main()
{
int a[] = {1,2,3,4,5};
int i;
int * p = a;
for (p = a + 4, i = 0; i < 5; i++) {
printf("%d ",p[-i]);
}
return 0;
}
......
ǰЩÌ죬±à³ÌÐòÊÇÓõ½Á˺ܾÃÒÔǰдµÄC³ÌÐò£¬Ïë°ÑÀïÃæµÄº¯ÊýÀûÓÃÆðÀ´£¬Á¬½Ó·¢ÏÖ³öÏÖÁËÕÒ²»µ½¾ßÌ庯ÊýµÄ´íÎó£º
ÒÔÏÂÊǼÙÉè¾ÉµÄC³ÌÐò¿â
CµÄÍ·Îļþ
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endifCµÄÔ´Îļþ
/*-----------c.c--------------*/
int add(int x, int y){
return x+y;
}
C++µÄµ÷ÓÃ
/*-----------cpp.cpp--------------*/
#include "c.h"
void main()
{
add(1, 0);
}
ÕâÑù±àÒë»á²úÉú´íÎócpp.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)£¬ÔÒòÊÇÕÒ²»µ½addµÄÄ¿±êÄ£¿é
Õâ²ÅÁîÎÒÏëÆðC++ÖØÔØµÄº¯ÊýÃüÃû·½Ê½ºÍCº¯ÊýµÄÃüÃû·½Ê½£¬ÈÃÎÒÃǻعËһϣºCÖк¯Êý±àÒëºóÃüÃû»áÔÚº¯ÊýÃûǰ¼ÓÒÔ"_",±ÈÈçaddº¯Êý±àÒë³ÉobjÎļþʱµÄʵ¼ÊÃüÃûΪ_add£¬¶øc++ÃüÃûÔò²»Í¬£¬ÎªÁËʵÏÖº¯ÊýÖØÔØÍ¬ÑùµÄº¯ÊýÃûaddÒò²ÎÊýµÄ²»Í¬»á±»±àÒë³É²»Í¬µÄÃû×Ö
ÀýÈç
int add(int , int)==>add@@YAHHH@Z,
float add(float , float )==>add@@YAMMM@Z,
ÒÔÉÏÊÇVC6µÄÃüÃû·½Ê½£¬²»Í¬µÄ±àÒëÆ÷»á²»Í¬£¬×ÜÖ®²»Í¬µÄ²ÎÊýͬÑùµÄº¯ÊýÃû½«±àÒë³É²»Í¬Ä¿±êÃû£¬ÒÔ±ãÓÚº¯ÊýÖØÔØÊǵ÷Ó ......