ÈçºÎÀí½âC run
ÈçºÎÀí½âC run-time library £¨CÔËÐÐʱ¿â£©
×¢£º ÒÔÏÂÄÚÈݲ¿·ÖÒý×ÔCSNDÖÐÏà¹ØÌÖÂÛµÄÌû×Ó£¬²¢½áºÏ×Ô¼ºµÄÀí½âÕûÀí¶ø³É¡£½ö¹©²Î¿¼¡£
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬Dennis Ritchie ºÍ Brian Kernighan ¾ÍÓà C ±¾ÉíÖØÐ´ÁË 90% ÒÔÉ쵀 UNIX ϵͳº¯Êý£¬²¢ÇÒ°ÑÆäÖÐ×î³£ÓõIJ¿·Ö¶ÀÁ¢³öÀ´£¬ÐγÉÍ·ÎļþºÍ¶ÔÓ¦µÄ LIBRARY£¬C run-time library ¾ÍÊÇÕâÑùÐγɵġ£
3) Ëæºó£¬Ëæ×Å C ÓïÑÔµÄÁ÷ÐУ¬¸÷¸ö C ±àÒëÆ÷µÄÉú²úÉÌ/¸öÌå/ÍÅÌå¶¼×ñÑÀϵĴ«Í³£¬ÔÚ²»Í¬Æ½Ì¨É϶¼ÓÐÏà¶ÔÓ¦µÄ Standard Library£¬µ«´ó²¿·ÖʵÏÖ¶¼ÊÇÓë¸÷¸öƽ̨Óйصġ£ÓÉÓÚ¸÷¸ö C ±àÒëÆ÷¶Ô C µÄÖ§³ÖºÍÀí½âÓкܶà·ÖÆçºÍ΢ÃîµÄ²î±ð£¬ËùÒÔ¾ÍÓÐÁË ANSI C£»ANSI C £¨Ö÷¹ÛÒâͼÉÏ£©ÏêϸµÄ¹æ¶¨ÁË C ÓïÑÔ¸÷¸öÒªËØµÄ¾ßÌ庬ÒåºÍ±àÒëÆ÷ʵÏÖÒªÇó£¬Òý½øÁËеĺ¯ÊýÉùÃ÷·½Ê½£¬Í¬Ê±¶©Á¢ÁË Standard Library µÄ±ê×¼ÐÎʽ¡£ËùÒÔCÔËÐÐʱ¿âÓɱàÒëÆ÷Éú²úÉÌÌṩ¡£ÖÁÓÚÓÉÆäËû³§ÉÌ/¸öÈË/ÍÅÌåÌṩµÄÍ·ÎļþºÍ¿âº¯Êý£¬Ó¦µ±³ÆÎªµÚÈý·½ C ÔËÐп⣨Third party C run-time libraries£©¡£
4)C run-time libraryÀïÃæº¬Óгõʼ»¯´úÂ룬»¹ÓдíÎó´¦Àí´úÂë(ÀýÈçdivide by zero´¦Àí)¡£ÄãдµÄ³ÌÐò¿ÉÒÔûÓÐmath¿â£¬³ÌÐòÕÕÑùÔËÐУ¬Ö»ÊDz»ÄÜ´¦Àí¸´ÔÓµÄÊýѧÔËË㣬²»¹ýÈç¹ûûÓÐÁËC run-time¿â£¬main()¾Í²»»á±»µ÷Óã¬exit()Ò²²»Äܱ»ÏìÓ¦¡£ÒòΪC run-time library°üº¬ÁËC³ÌÐòÔËÐеÄ×î»ù±¾ºÍ×î³£Óõĺ¯Êý¡£
5) µ½ÁË C++ ÊÀ½çÀÓÐÁíÍâÒ»¸ö¸ÅÄî:Standard C++ Library,Ëü°üÀ¨ÁËÉÏÃæËù˵µÄ C run-time library ºÍ STL¡£°üº¬ C run-time library µÄÔÒòºÜÃ÷ÏÔ£¬C++ ÊÇ C µÄ³¬¼¯£¬Ã»ÓÐÀíÓÉÔÙÖØÐÂÀ´Ò»¸ö C++ run-time library. VCÕë¶ÔC++ ¼ÓÈëµÄStandard C++ LibraryÖ÷Òª°üÀ¨£ºLIBCP.LIB, LIBCPMT.LIBºÍ MSVCPRT.LIB
6)Windows»·¾³Ï£¬VCÌṩµÄ C run-time libraryÓÖ·ÖΪ¶¯Ì¬ÔËÐÐʱ¿âºÍ¾²Ì¬ÔËÐÐʱ¿â¡£
¶¯Ì¬ÔËÐÐʱ¿âÖ÷ÒªÊÇDLL¿âÎļþmsvcrt.dll(or MSVCRTD.DLL for debug build),¶ÔÓ¦µÄImport libraryÎļþÊÇMSVCRT.LIB(MSVCRTD.LIB for debug build)
¾²Ì¬ÔËÐÐʱ¿â(release°æ)¶ÔÓ¦µÄÖ÷ÒªÎļþÊÇ£º
LIBC.LIB (Single thread static library, retail version)
LIBCMT.LIB (Multithread static library, retail versio
Ïà¹ØÎĵµ£º
CreateThreadº¯Êý
Ç°Ãæ½²¹ý£¬½ø³ÌµÄÖ÷Ï̻߳áÔÚCreateProcessµ÷ÓÃʱ×Ô¶¯´´½¨¡£¼ÙÈçÄãÒªÊÖ¹¤´´½¨Ị̈߳¬Äã¿ÉÒÔµ÷ÓÃCreateThreadº¯Êý£º
HANDLE CreateThread(
PSECURITY_ATTRIBUTES psa,
DWORD cbStackSize,
PTHREAD_START_ROUTINE pfnStartAddr,
PVOID pvParam,
DWORD dwCreateFlags,
PDWORD pdwThreadID) ......
N µ±ÓÃÁ½¸ö²¹Âë±íʾµÄ´ø·ûºÅÊý½øÐÐÔËËãʱ£¬N=1±íʾÔËËãµÄ½á¹ûΪ¸ºÊý£»N=0±íʾÔËËãµÄ½á¹ûΪÕýÊý»òÁã.
Z Z=1±íʾÔËËãµÄ½á¹ûΪÁ㣬Z=0±íʾÔËËãµÄ½á¹û·ÇÁã¡£
C ¿ÉÒÔÓÐ4ÖÖ·½·¨ÉèÖÃCµÄÖµ£º
¼Ó·¨ÔËË㣨°üÀ¨CMN£©£ºµ±ÔËËã½á¹û²úÉúÁ˽øÎ»Ê±£¨ÎÞ·ûºÅÊýÒç³ö£©£¬C=1£¬·ñÔòC=0¡£
¼õ·¨ÔËË㣨°üÀ¨CMP£©£ºµ±ÔËËãʱ²úÉúÁ˽èλʱ£¨ÎÞ·ûºÅÊ ......
#include <iostream.h>
void fun0(int* p)
{
int* a=new int[3];
*a=0;
*(a+1)=1;
*(a+2)=2;
p=a;
}
void fun1(int* &p)
{
int* a=new int[3];
*a=0;
*(a+1)=1;
*(a+2)=2;
p=a;
}
void fun2(int* p)
{
*p=0;
*(p+1)=1;
*(p+2)=2;
}
//warning:returning address of local va ......