extern "C" Ïê½â
extern "C" Ïê½â
ÔÚC++ÖУ¬ÎªÁËÖ§³ÖÖØÔØ»úÖÆ£¬ÔÚ±àÒëÉú³É»ã±à´úÂëʱ£¬º¯ÊýµÄÃû×ÖÒª¼ÓÈ뺯ÊýµÄ²ÎÊýÀàÐÍ»òÕß·µ»ØÖµÀàÐ͵ÈÐÅÏ¢
ÔÚCÖУ¬ÒòûÓÐÖØÔØ»úÖÆ£¬±àÒëºóµÄ´úÂëÖ»ÊǼòµ¥µÄº¯ÊýÃû×Ö¶øÒÑ£¬²»¼ÓÈëÆäËûµÄÐÅÏ¢
1. ²»¼ÓÈëextern "C"
testexternc.cpp
int mytest(void)
{
int a=10,b=20;
int c=a+b;
return c;
}
Command: g++ -S testexternc.cpp»òÕßgcc -S testexternc.cpp
Generated file: testexternc.s
.file "testexternc.cpp"
.text
.align 2
.globl _Z6mytestv
.type _Z6mytestv, @function
_Z6mytestv:
.LFB2:
pushl %ebp
.LCFI0:
movl %esp, %ebp
.LCFI1:
subl $16, %esp
.LCFI2:
movl $10, -12(%ebp)
movl $20, -8(%ebp)
movl -8(%ebp), %eax
addl -12(%ebp), %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
leave
ret
.LFE2:
.size _Z6mytestv, .-_Z6mytestv
.globl __gxx_personality_v0
Ïà¹ØÎĵµ£º
º¯ÊýÃû: abort
¹¦ ÄÜ: Òì³£ÖÕÖ¹Ò»¸ö½ø³Ì
ÓÃ ·¨: void abort(void);
³ÌÐòÀý:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}
......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæÐ¡±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. setvectº¯Êý
setvectº¯ÊýµÄ¹¦ÄÜÊÇÉèÖÃÖжÏʸÁ¿Èë¿Ú£¬ÆäÓ÷¨Îª£ºvoid setvect(int intr_num, void interrupt(*isr)());³ÌÐòʵÀýÈçÏ£º
#include <st ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæÐ¡±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. setwritemodeº¯Êý
setwritemodeº¯ÊýµÄ¹¦ÄÜÊÇÉèÖÃͼÐη½Ê½Ï»ÏßµÄÊä³öģʽ£¬ÆäÓ÷¨Îª£ºvoid far setwritemode(int mode);³ÌÐòʵÀýÈçÏ£º
#include < ......
ʹÓÃKeil Cµ÷ÊÔijϵͳʱ»ýÀÛµÄһЩ¾Ñé
1¡¢ÔÚWindows2000ÏÂÃæ£¬ÎÒÃÇ¿ÉÒÔ°Ñ×ÖÌåÉèÖÃΪCourier£¬ÕâÑù¾Í¿ÉÒÔÏÔʾÕý³£¡£
2¡¢µ±Ê¹ÓÃÓÐÆ¬ÍâÄÚ´æµÄMCU£¨ÈçW77E58£¬ËüÓÐ1KƬÍâÄڴ棩µÄʱºò£¬¿Ï¶¨ÒªÉèÖñê־룬²¢ÇÒ±àÒ뷽ʽҪѡÔñ´óģʽ£¬·ñÔò»á³ö´í¡£
3¡¢µ±Ê¹ÓÃKeil C¸ú×Ù³ÌÐòÔËÐÐ״̬µÄʱºò£¬Òª°ÑÒýÆðWarningµÄÓï¾äÆÁ±Î£ ......
º¯ÊýÃûÓ뺯ÊýÖ¸Õë
º¯Êý´æ·ÅÔÚÄÚ´æµÄ´úÂëÇøÓòÄÚ£¬ËüÃÇͬÑùÓеØÖ·£¬ÎÒÃÇÈçºÎÄÜ»ñµÃº¯ÊýµÄµØÖ·ÄØ£¿
Èç¹ûÎÒÃÇÓÐÒ»¸öint test(int a)µÄº¯Êý£¬ÄÇô£¬ËüµÄµØÖ·¾ÍÊǺ¯ÊýµÄÃû×Ö£¬ÕâÒ»µãÈçͬÊý×éÒ»Ñù£¬Êý×éµÄÃû×Ö¾ÍÊÇÊý×éµÄÆðʼµØÖ·¡£
Ò» ͨ³£µÄº¯Êýµ÷ÓÃ
Ò»¸öͨ³£µÄº¯Êýµ÷ÓõÄÀý×Ó ......