Cº¯Êýµ÷ÓÃÔ¼¶¨
CÖвÉÓÃÁ˲»Í¬µÄµ÷Ó÷½Ê½À´µ÷Óú¯Êý£¬ÕâÀïµÄº¯Êýµ÷ÓøÅÄî¿ÉÄÜÓëÎÒÃÇͨ³£ËùÀí½âµÄº¯Êýµ÷ÓÃÓÐËù²»Í¬£¬ËüÃÇÖ¸µÄÊÇ´¦ÀíÆ÷ÔÚ´¦Àíº¯ÊýÉϵIJîÒì¡£Àí½âÕâЩ²»Í¬µÄ·½Ê½ÓÐÖúÓÚÎÒÃÇÀ´µ÷ÊÔ³ÌÐòºÍÁ´½ÓÎÒÃǵĴúÂë¡£ÔÚ´ËÎÒÏëÌÖÂÛÒ»ÏÂÖ÷ÒªµÄËÄÖÖº¯Êýµ÷Ó÷½·¨ÒÔ¼°Ö®¼äµÄÇø±ð£¬ËüÃÇÊÇ__stdcall¡¢__cdecl¡¢__fastcall¡¢thiscall¡£µ±È»£¬»¹ÓÐһЩ¸ü¼Ó²»³£Óõĺ¯Êýµ÷Ó÷½·¨±ÈÈçnaked callÎÒÒ²½«Ë³±ãÌá¼°¡£
²»Í¬µÄº¯Êýµ÷Ó÷½·¨Ö®¼äµÄÖ÷ÒªÓÐÒÔÏÂÒ»Ð©Çø±ð£º
¢Ù µ±²ÎÊý¸öÊý¶àÓÚÒ»¸öʱ£¬°´ÕÕʲô˳Ðò°Ñ²ÎÊýѹÈë¶ÑÕ»º¯Êýµ÷Óúó
¢Ú ËÀ´»Ö¸´¶ÑÕ»
¢Û ±àÒëºóµÄÐÞÊÎÃû¹æÔò
__stdcall£º½«²ÎÊýѹջÊǰ´PASCALÓïÑÔµÄ˳Ðò£¨´ÓÓÒµ½×󣩣¬Í¨³£ÓÃÓÚWINAPIÖС£ËüÊÇÓɱ»µ÷ÓÃÕß½«²ÎÊý´ÓÕ»ÖÐÇå³ýµÄ,ËùÒÔËüµÄ±àÒëÎļþ±È__cdeclС¡£__stdcallÊÇWindows APIº¯ÊýÖÐĬÈϵĵ÷ÓÃÔ¼¶¨£¬±»µ÷º¯Êý×Ô¼ºÔÚÍ˳öʱÇå¿Õ¶ÑÕ»¡£ÕâÖÖµ÷Ó÷½Ê½²»ÄÜʵÏÖ±ä²Îº¯Êý£¬ÒòΪ±»µ÷º¯Êý²»ÄÜÊÂÏÈÖªµÀµ¯Õ»ÊýÁ¿£¬µ«ÔÚÖ÷µ÷º¯ÊýÖÐÊÇ¿ÉÒÔ×öµ½µÄ£¬ÒòΪ²ÎÊýÊýÁ¿ÓÉÖ÷µ÷º¯ÊýÈ·¶¨¡£VC½«º¯Êý±àÒëºó»áÔÚº¯ÊýÃûÇ°Ãæ¼ÓÉÏÏ»®Ïßǰ׺£¬ÔÚº¯ÊýÃûºó¼ÓÉÏ"@"ºÍ²ÎÊýµÄ×Ö½ÚÊý¡£È纯Êýint func(int a, double b)µÄÐÞÊÎÃûÊÇ_func@12¡£
±àÒëÑ¡Ïî/Gz¡£
×¢Ò⣺ÔÚ´´½¨DLLʱ£¬Ò»°ãʹÓÃ__stdcallµ÷Óã¨Win32 Api·½Ê½£©£¬²ÉÓÃ__functionname@numberÃüÃû¹æÔò£¬Òò¶ø¸÷ÖÖÓïÑÔ¼äµÄDLLÄÜ»¥Ïàµ÷Óá£Ò²¾ÍÊÇ˵£¬DLLµÄ±àÖÆÓë¾ßÌåµÄ±à³ÌÓïÑÔ¼°±àÒëÆ÷Î޹أ¬Ö»Òª×ñÊØDLLµÄ¿ª·¢¹æ·¶ºÍ±à³Ì²ßÂÔ£¬²¢°²ÅÅÕýÈ·µÄµ÷Óýӿڣ¬²»¹ÜÓúÎÖÖ±à³ÌÓïÑÔ±àÖÆµÄDLL¶¼¾ßÓÐͨÓÃÐÔ¡£
__cdecl£ºÊÇCÓïÑÔ²ÉÓõÄĬÈϵ÷Ó÷½·¨£¬²ÎÊý°´´ÓÓÒµ½×óµÄ˳ÐòѹÈëÕ»£¬Óɵ÷ÓÃÕ߰ѲÎÊýµ¯³öÕ»£¬ËüµÄÓŵãÊÇÖ§³ÖprintfÕâÑùµÄ¿É±ä²ÎÊýµ÷Óá£Ò»°ã¿É±ä²ÎÊýº¯ÊýµÄµ÷Óö¼²ÉÓÃÕâÖÖ·½Ê½£¬±ÈÈçint __cdecl scanf (const char *format,…)¡£¶ÔÓÚ"C"£¬ÐÞÊÎÃûÊÇÔÚº¯ÊýÃûǰ¼ÓÏ»®Ïß,È纯Êývoid test(void)µÄÐÞÊÎÃûÊÇ__test¡£³ý·ÇÉùÃ÷Ϊ extern "C"£¬·ñÔò C++ º¯Êý½«Ê¹Óò»Í¬µÄÃû³ÆÐÞÊη½°¸¡£
±àÒëÑ¡Ïî/Gd¡£
×¢Ò⣺CC++ÖеÄmain(»òwmain)º¯ÊýµÄµ÷ÓÃÔ¼¶¨±ØÐëÊÇ__cdecl,²»ÔÊÐí¸ü¸Ä¡£
__fastcall£º__fastcallµ÷ÓýϿ죬Ëüͨ¹ýCPUÄÚ²¿¼Ä´æÆ÷´«µÝ²ÎÊý¡£Í·Á½¸öDWORDÀàÐÍ»òÕßÕ¼¸üÉÙ×ֽڵIJÎÊý±»·ÅÈëECXºÍEDX¼Ä´æÆ÷£¬ÆäËûʣϵIJÎÊý°´´ÓÓÒµ½×óµÄ˳ÐòѹÈëÕ»¡£Óɱ»µ÷ÓÃÕ߰ѲÎÊýµ¯³öÕ»£¬¶ÔÓÚ“C”º¯Êý»òÕß±äÁ¿£¬ÐÞÊÎÃûÒÔ“@”Ϊǰ׺£¬È»ºóÊǺ¯ÊýÃû£¬½Ó×Å
Ïà¹ØÎĵµ£º
Ò»¡¢»ù±¾ÖªÊ¶
Ö¸ÕëºÍÒýÓõÄÉùÃ÷·½Ê½£º
ÉùÃ÷Ö¸Õ룺 char* pc;
ÉùÃ÷ÒýÓ㺠char c = 'A'
char& rc = c;
ËüÃǵÄÇø±ð£º
¢Ù´ÓÏÖÏóÉÏ¿´£¬Ö¸ÕëÔÚÔËÐÐʱ¿ÉÒԸıäÆäËùÖ¸ÏòµÄÖµ£¬¶øÒýÓÃÒ»µ©ºÍij¸ö¶ÔÏó°ó¶¨ºó ......
main.c
//³õʼ»¯¶ÓÁÐ
void InitQueue(LiQueue *q)
{
q=(LiQueue*)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
}
//ÅжÏÊÇ·ñΪ¿Õ
int QueueEmpty(LiQueue *q)
{
if(q->rear==NULL)
{
return 1;
}
else
{
......
1£ºÀàËÆjunitµÄ¶ÏÑÔ£¬Ö»ÊÇÔÚassertÖеĶÏÑÔ£¬Èç¹û²»Âú×ãµÄ»°¾Í³ÌÐòÍ˳ö¡£
±ÈÈç
#include <assert.h>
int main(void)
{
assert(6 < 5);
system("pause");
return 0;
}
ÔÚÖ´Ðе½assert(6 < 5);
µÄʱºòÒòΪ²»Âú×ã¶ÏÑÔ£¬ÓÚÊdzÌÐòÍ˳ö¡£
Èç¹û²»ÏëÈÃassert(6 < 5)Æð×÷Ó㬾ÍÔÚ×îÉÏÃæÌí¼Óºê¶¨Òå# ......
Ñ¡ÔñÅÅÐò·¨ÀàËÆÎÒÃÇÈËΪµÄÅÅÐòϰ¹ß£º´ÓÊý¾ÝÖÐÑ¡Ôñ×îСµÄͬµÚÒ»¸öÖµ½»»»£¬ÔÚ´ÓʡϵIJ¿·ÖÖÐÑ¡Ôñ×îСµÄÓëµÚ¶þ¸ö½»»»£¬ÕâÑùÍù¸´ÏÂÈ¥……
Ñ¡ÔñÅÅÐòµÄƽ¾ùʱ¼ä¸´ÔӶȱÈðÅÝÅÅÐòµÄÉÔµÍ:
ͬÑùÊý¾ÝµÄÇé¿öÏ£¬2ÖÖËã·¨µÄÑ»·´ÎÊýÊÇÒ»ÑùµÄ£¬µ«Ñ¡ÔñÅÅÐòÊÇÒ»¶Ô¶àµÄ±È½Ï£¬Ã¿ÌËÖ»½øÐÐ0µ½1´Î½»»»£¬¶øÃ°ÅÝÅÅÐòÊÇÏàÁÚÁ½Á½±È½Ï£ ......
/*
* Exercise 2-5 Page 48
*
* Write the function any(s1,s2), which returns the first location
* in the string s1 where any character from the string s2 occurs,
* or -1 if s1 contains no characters from s2. (The standard library
* function strpbrk does the same job but returns a pointer t ......