C ·ç¸ñ£¨C-style£©Ç¿ÖÆתÐÍÈçÏ£º
(T) exdivssion // cast exdivssion to be of type T
º¯Êý·ç¸ñ£¨Function-style£©Ç¿ÖÆתÐÍʹÓÃÕâÑùµÄÓï·¨£º
T(exdivssion) // cast exdivssion to be of type T
ÕâÁ½ÖÖÐÎʽ֮¼äûÓб¾ÖÊÉϵIJ»Í¬£¬Ëü´¿´â¾ÍÊÇÒ»¸ö°ÑÀ¨ºÅ·ÅÔÚÄĵÄÎÊÌâ¡£ÎÒ°ÑÕâÁ½ÖÖÐÎʽ³ÆΪ¾É·ç¸ñ£¨old-style£©µÄÇ¿ÖÆתÐÍ¡£
ʹÓñê×¼C++µÄÀàÐÍת»»·û£ºstatic_cast¡¢dynamic_cast¡¢reinterdivt_cast¡¢ºÍconst_cast¡£
3.1 static_cast
Ó÷¨£ºstatic_cast < type-id > ( exdivssion )
¸ÃÔËËã·û°Ñexdivssionת»»Îªtype-idÀàÐÍ£¬µ«Ã»ÓÐÔËÐÐʱÀàÐͼì²éÀ´±£Ö¤×ª»»µÄ°²È«ÐÔ¡£ËüÖ÷ÒªÓÐÈçϼ¸ÖÖÓ÷¨£º
¢ÙÓÃÓÚÀà²ã´Î½á¹¹ÖлùÀàºÍ×ÓÀàÖ®¼äÖ¸Õë»òÒýÓõÄת»»¡£
¡¡¡¡½øÐÐÉÏÐÐת»»£¨°Ñ×ÓÀàµÄÖ¸Õë»òÒýÓÃת»»³É»ùÀà±íʾ£©ÊÇ°²È«µÄ£»
¡¡¡¡½øÐÐÏÂÐÐת»»£¨°Ñ»ùÀàÖ¸Õë»òÒýÓÃת»»³É×ÓÀà±íʾ£©Ê±£¬ÓÉÓÚûÓж¯Ì¬ÀàÐͼì²é£¬ËùÒÔÊDz»°²È«µÄ¡£
¢ÚÓÃÓÚ»ù±¾Êý¾ÝÀàÐÍÖ®¼äµÄת»»£¬Èç°Ñintת»»³Échar£¬°Ñintת»»³Éenum¡£ÕâÖÖת»»µÄ°²È«ÐÔÒ²Òª¿ª·¢ÈËÔ±À´±£Ö¤¡£
¢Û°Ñ¿ÕÖ¸Õëת»»³ÉÄ¿±êÀàÐ͵ĿÕÖ¸Õë¡£
¢Ü°ÑÈκÎÀàÐ͵ıí´ïʽת»»³ÉvoidÀàÐÍ¡£
×¢Ò⣺static_cast²»ÄÜת»»µôexdivssionµ ......
ÏÂÃæÊÇÎÒ¹ØÓÚCÓïÑÔÖи÷ÖÖÊý¾ÝÀàÐͳ¤¶ÈµÄ×ܽ᣺(²Î¿¼The C Programming Language)
1. cÓïÑÔÖеÄÕûÊýÀàÐÍÓÐchar, short, int, longµÈ¼¸ÖÖ, ÏÂÃæÊÇCÓïÑÔ¶ÔÿÖÖÊý¾ÝÀàÐͳ¤¶ÈµÄ¹æ¶¨:
(a). shortºÍlongÀàÐ͵ij¤¶È²»Ïàͬ
(b). intÀàÐÍͨ³£Í¬¾ßÌå»úÆ÷µÄÎïÀí×Ö³¤Ïàͬ
(c). shortͨ³£ÊÇ16bits, intͨ³£ÊÇ16bits or 32bitsÿÖÖ±àÒëÆ÷¿ÉÒÔ¸ù¾ÝÓ²¼þµÄ²»Í¬×ÔÓÉÈ·¶¨, µ«ÊÇshortºÍint±ØÐë×îÉÙÊÇ16bits, ¶ølongÀàÐͱØÐë×îÉÙÊÇ32bits, ²¢ÇÒshort±ØÐë±ÈintºÍlongÀàÐÍÒª¶Ì¡£
2. sizeof() ÔËËã·û·µ»ØµÄÊÇÒ»ÖÖÊý¾ÝÀàÐÍÖÐËù°üº¬µÄ×Ö½ÚÊý(bytes), AnsiC¹æ¶¨sizeof(char)±ØÐë·µ»Ø1£¬µ±sizeof×÷ÓÃÓÚÊý×éʱ, ·µ»ØµÄÊÇÊý×éÖÐËùÓгÉÔ±ËùÕ¼µÄ×Ö½ÚÊý(×¢Òâ²¢²»ÊÇÊý×éÖгÉÔ±µÄ¸öÊý), µ±sizeof()×÷ÓÃÓڽṹÌåºÍ¹«ÓÃÌåʱ,·µ»ØµÄ²»½ö½öÊÇÊý¾Ý³ÉÔ±×ܵÄ×Ö½ÚÊý, »¹°üÀ¨±àÒëÆ÷ΪÁËʵÏÖ×Ö½Ú¶ÔÆä¶øÌî³äµÄÄÇЩ×Ö½Ú¡£
ÒÔǰд³ÌÐòÒ²ÒþÒþÔ¼Ô¼µÄ¶®µÃÕâЩ¹æÔò£¬µ«ÊÇÒ»Ö±ÒÔΪcharÀàÐͱØÐëÊÇ8bitsµÄ£¬µ«ÊÇ×î½ü×öÁËÒ»¸öǶÈëʽDSPÏîÄ¿£¬±àÒëÆ÷ÊÖ²áÉÏÃ÷Ã÷д×ÅcharÀàÐ;ÍÊÇ16bitsµÄ£¬ÎÞÄη³ö"The C ......
ÏÂÃæÊÇÎÒ¹ØÓÚCÓïÑÔÖи÷ÖÖÊý¾ÝÀàÐͳ¤¶ÈµÄ×ܽ᣺(²Î¿¼The C Programming Language)
1. cÓïÑÔÖеÄÕûÊýÀàÐÍÓÐchar, short, int, longµÈ¼¸ÖÖ, ÏÂÃæÊÇCÓïÑÔ¶ÔÿÖÖÊý¾ÝÀàÐͳ¤¶ÈµÄ¹æ¶¨:
(a). shortºÍlongÀàÐ͵ij¤¶È²»Ïàͬ
(b). intÀàÐÍͨ³£Í¬¾ßÌå»úÆ÷µÄÎïÀí×Ö³¤Ïàͬ
(c). shortͨ³£ÊÇ16bits, intͨ³£ÊÇ16bits or 32bitsÿÖÖ±àÒëÆ÷¿ÉÒÔ¸ù¾ÝÓ²¼þµÄ²»Í¬×ÔÓÉÈ·¶¨, µ«ÊÇshortºÍint±ØÐë×îÉÙÊÇ16bits, ¶ølongÀàÐͱØÐë×îÉÙÊÇ32bits, ²¢ÇÒshort±ØÐë±ÈintºÍlongÀàÐÍÒª¶Ì¡£
2. sizeof() ÔËËã·û·µ»ØµÄÊÇÒ»ÖÖÊý¾ÝÀàÐÍÖÐËù°üº¬µÄ×Ö½ÚÊý(bytes), AnsiC¹æ¶¨sizeof(char)±ØÐë·µ»Ø1£¬µ±sizeof×÷ÓÃÓÚÊý×éʱ, ·µ»ØµÄÊÇÊý×éÖÐËùÓгÉÔ±ËùÕ¼µÄ×Ö½ÚÊý(×¢Òâ²¢²»ÊÇÊý×éÖгÉÔ±µÄ¸öÊý), µ±sizeof()×÷ÓÃÓڽṹÌåºÍ¹«ÓÃÌåʱ,·µ»ØµÄ²»½ö½öÊÇÊý¾Ý³ÉÔ±×ܵÄ×Ö½ÚÊý, »¹°üÀ¨±àÒëÆ÷ΪÁËʵÏÖ×Ö½Ú¶ÔÆä¶øÌî³äµÄÄÇЩ×Ö½Ú¡£
ÒÔǰд³ÌÐòÒ²ÒþÒþÔ¼Ô¼µÄ¶®µÃÕâЩ¹æÔò£¬µ«ÊÇÒ»Ö±ÒÔΪcharÀàÐͱØÐëÊÇ8bitsµÄ£¬µ«ÊÇ×î½ü×öÁËÒ»¸öǶÈëʽDSPÏîÄ¿£¬±àÒëÆ÷ÊÖ²áÉÏÃ÷Ã÷д×ÅcharÀàÐ;ÍÊÇ16bitsµÄ£¬ÎÞÄη³ö"The C ......
C/C++·µ»ØÄÚ²¿¾²Ì¬³ÉÔ±µÄÏÝÚå
³Âð©
±³¾°
ÔÚÎÒÃÇÓÃ
C/C++¿ª·¢µÄ¹ý³ÌÖУ¬×ÜÊÇÓÐÒ»¸öÎÊÌâ»á¸øÎÒÃÇ´øÀ´¿àÄÕ¡£Õâ¸öÎÊÌâ¾ÍÊǺ¯ÊýÄںͺ¯ÊýÍâ´úÂëÐèҪͨ¹ýÒ»¿éÄÚ´æÀ´½»»¥£¨±ÈÈ磬º¯Êý·µ»Ø×Ö·û´®£©£¬Õâ¸öÎÊÌâÀ§
Èźͺܶ࿪·¢ÈËÔ±¡£Èç¹ûÄãµÄÄÚ´æÊÇÔÚº¯ÊýÄÚÕ»ÉÏ·ÖÅäµÄ£¬ÄÇôÕâ¸öÄÚ´æ»áËæן¯ÊýµÄ·µ»Ø¶ø±»µ¯Õ»ÊÍ·Å£¬ËùÒÔ£¬ÄãÒ»¶¨Òª·µ»ØÒ»¿éº¯ÊýÍⲿ»¹ÓÐЧµÄÄÚ´æ¡£
ÕâÊÇÒ»¸öÈÃÎÞÊýÈËÀ§ÈŵÄÎÊÌâ¡£Èç¹ûÄãÒ»²»Ð¡ÐÄ£¬Äã¾ÍºÜÓпÉÄÜÔÚÕâ¸öÉÏÃæ·¸´íÎó¡£µ±È»Ä¿Ç°Óкܶà½â¾ö·½·¨£¬Èç¹ûÄãÊìϤһЩ±ê×¼¿âµÄ»°£¬Äã¿ÉÒÔ¿´µ½Ðí¶à¸÷ʽ¸÷ÑùµÄ½â¾ö·½·¨¡£´óÌåÀ´ËµÓÐÏÂÃ漸ÖÖ£º
1£©
ÔÚº¯ÊýÄÚ²¿Í¨¹ýmalloc»ònewÔÚ¶ÑÉÏ·ÖÅäÄڴ棬Ȼºó°ÑÕâ¿éÄÚ´æ·µ»Ø£¨ÒòΪÔÚ¶ÑÉÏ·ÖÅäµÄÄÚ´æÊÇÈ«¾Ö¿É¼ûµÄ£©¡£ÕâÑù´øÀ´µÄÎÊÌâ¾ÍÊÇDZÔÚµÄÄÚ´æÎÊÌâ¡£Òò
Ϊ£¬Èç¹û·µ»Ø³öÈ¥µÄÄÚ´æ²»ÊÍ·Å£¬ÄÇô¾ÍÊÇmemory
Leak¡£»òÕßÊDZ»¶à´ÎÊÍ·Å£¬´Ó¶øÔì³É³ÌÐòµÄcrash¡£ÕâÁ½¸öÎÊÌⶼÏ൱µÄÑÏÖØ£¬ËùÒÔÕâÖÖÉè¼Æ·½·¨²¢²»ÍƼö¡££¨ÔÚһЩWindows
APIÖУ¬µ±Äãµ÷ÓÃÁËһЩAPIºó£¬Äã±ØÐèÒ²Òªµ÷ÓÃËûµÄijЩAPIÀ´ÊÍ·ÅÕâ¿éÄڴ棩
2£©ÈÃÓû§´«ÈëÒ»¿éËû×Ô¼ºµÄÄÚ´æµØÖ·£¬¶øÔÚº¯ÊýÖаÑÒª
·µ»ØµÄÄÚ´æ·Åµ½Õâ¿éÄÚ´æÖС£ÕâÊÇÒ»¸öÄ¿Ç°ÆÕ±éʹÓõķ½Ê½¡£ºÜ¶àWind ......
C/C++·µ»ØÄÚ²¿¾²Ì¬³ÉÔ±µÄÏÝÚå
³Âð©
±³¾°
ÔÚÎÒÃÇÓÃ
C/C++¿ª·¢µÄ¹ý³ÌÖУ¬×ÜÊÇÓÐÒ»¸öÎÊÌâ»á¸øÎÒÃÇ´øÀ´¿àÄÕ¡£Õâ¸öÎÊÌâ¾ÍÊǺ¯ÊýÄںͺ¯ÊýÍâ´úÂëÐèҪͨ¹ýÒ»¿éÄÚ´æÀ´½»»¥£¨±ÈÈ磬º¯Êý·µ»Ø×Ö·û´®£©£¬Õâ¸öÎÊÌâÀ§
Èźͺܶ࿪·¢ÈËÔ±¡£Èç¹ûÄãµÄÄÚ´æÊÇÔÚº¯ÊýÄÚÕ»ÉÏ·ÖÅäµÄ£¬ÄÇôÕâ¸öÄÚ´æ»áËæן¯ÊýµÄ·µ»Ø¶ø±»µ¯Õ»ÊÍ·Å£¬ËùÒÔ£¬ÄãÒ»¶¨Òª·µ»ØÒ»¿éº¯ÊýÍⲿ»¹ÓÐЧµÄÄÚ´æ¡£
ÕâÊÇÒ»¸öÈÃÎÞÊýÈËÀ§ÈŵÄÎÊÌâ¡£Èç¹ûÄãÒ»²»Ð¡ÐÄ£¬Äã¾ÍºÜÓпÉÄÜÔÚÕâ¸öÉÏÃæ·¸´íÎó¡£µ±È»Ä¿Ç°Óкܶà½â¾ö·½·¨£¬Èç¹ûÄãÊìϤһЩ±ê×¼¿âµÄ»°£¬Äã¿ÉÒÔ¿´µ½Ðí¶à¸÷ʽ¸÷ÑùµÄ½â¾ö·½·¨¡£´óÌåÀ´ËµÓÐÏÂÃ漸ÖÖ£º
1£©
ÔÚº¯ÊýÄÚ²¿Í¨¹ýmalloc»ònewÔÚ¶ÑÉÏ·ÖÅäÄڴ棬Ȼºó°ÑÕâ¿éÄÚ´æ·µ»Ø£¨ÒòΪÔÚ¶ÑÉÏ·ÖÅäµÄÄÚ´æÊÇÈ«¾Ö¿É¼ûµÄ£©¡£ÕâÑù´øÀ´µÄÎÊÌâ¾ÍÊÇDZÔÚµÄÄÚ´æÎÊÌâ¡£Òò
Ϊ£¬Èç¹û·µ»Ø³öÈ¥µÄÄÚ´æ²»ÊÍ·Å£¬ÄÇô¾ÍÊÇmemory
Leak¡£»òÕßÊDZ»¶à´ÎÊÍ·Å£¬´Ó¶øÔì³É³ÌÐòµÄcrash¡£ÕâÁ½¸öÎÊÌⶼÏ൱µÄÑÏÖØ£¬ËùÒÔÕâÖÖÉè¼Æ·½·¨²¢²»ÍƼö¡££¨ÔÚһЩWindows
APIÖУ¬µ±Äãµ÷ÓÃÁËһЩAPIºó£¬Äã±ØÐèÒ²Òªµ÷ÓÃËûµÄijЩAPIÀ´ÊÍ·ÅÕâ¿éÄڴ棩
2£©ÈÃÓû§´«ÈëÒ»¿éËû×Ô¼ºµÄÄÚ´æµØÖ·£¬¶øÔÚº¯ÊýÖаÑÒª
·µ»ØµÄÄÚ´æ·Åµ½Õâ¿éÄÚ´æÖС£ÕâÊÇÒ»¸öÄ¿Ç°ÆÕ±éʹÓõķ½Ê½¡£ºÜ¶àWind ......
HÎļþºÍCÎļþÔõôÓÃÄØ£¿Ò»°ãÀ´Ëµ£¬HÎļþÖÐÊÇdeclare£¨ÉùÃ÷£©£¬CÎļþÖÐÊÇdefine£¨¶¨Ò壩¡£ÒòΪCÎļþÒª±àÒë³É¿âÎļþ£¨WindowsÏÂÊÇ.obj/.lib£¬UNIXÏÂÊÇ.o/.a£©£¬Èç¹û±ðÈËҪʹÓÃÄãµÄº¯Êý£¬ÄÇô¾ÍÒªÒýÓÃÄãµÄHÎļþ£¬ËùÒÔ£¬HÎļþÖÐÒ»°ãÊDZäÁ¿¡¢ºê¶¨Ò塢ö¾Ù¡¢½á¹¹ºÍº¯Êý½Ó¿ÚµÄÉùÃ÷£¬¾ÍÏñÒ»¸ö½Ó¿Ú˵Ã÷ÎļþÒ»Ñù¡£¶øCÎļþÔòÊÇʵÏÖϸ½Ú¡£
HÎļþºÍCÎļþ×î´óµÄÓô¦¾ÍÊÇÉùÃ÷ºÍʵÏÖ·Ö¿ª¡£Õâ¸öÌØÐÔÓ¦¸ÃÊǹ«ÈϵÄÁË£¬µ«ÎÒÈÔÈ»¿´µ½ÓÐЩÈËϲ»¶°Ñº¯ÊýдÔÚHÎļþÖУ¬ÕâÖÖÏ°¹ßºÜ²»ºÃ¡££¨Èç¹ûÊÇC++»°£¬¶ÔÓÚÆäÄ£°åº¯Êý£¬ÔÚVCÖÐÖ»ÓаÑʵÏÖºÍÉùÃ÷¶¼Ð´ÔÚÒ»¸öÎļþÖУ¬ÒòΪVC²»Ö§³Öexport¹Ø¼ü×Ö£©¡£¶øÇÒ£¬Èç¹ûÔÚHÎļþÖÐдÉϺ¯ÊýµÄʵÏÖ£¬Ä㻹µÃÔÚmakefileÖаÑÍ·ÎļþµÄÒÀÀµ¹ØϵҲ¼ÓÉÏÈ¥£¬Õâ¸ö¾Í»áÈÃÄãµÄmakefileºÜ²»¹æ·¶¡£
×îºó£¬ÓÐÒ»¸ö×îÐèҪעÒâµÄµØ·½¾ÍÊÇ£º´ø³õʼ»¯µÄÈ«¾Ö±äÁ¿²»Òª·ÅÔÚHÎļþÖУ¡ ......
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) × ......
getenv£¨È¡µÃ»·¾³±äÁ¿ÄÚÈÝ£©
Ïà¹Øº¯Êý putenv£¬setenv£¬unsetenv
±íÍ·Îļþ #include<stdlib.h>
¶¨Ò庯Êý char * getenv(const char *name);
º¯Êý˵Ã÷ getenv()ÓÃÀ´È¡µÃ²ÎÊýname»·¾³±äÁ¿µÄÄÚÈÝ¡£²ÎÊýnameΪ»·¾³±äÁ¿µÄÃû³Æ£¬Èç¹û¸Ã±äÁ¿´æÔÚÔò»á·µ»ØÖ¸Ïò¸ÃÄÚÈݵÄÖ¸Õë¡£»·¾³±äÁ¿µÄ¸ñʽΪname£½value¡£
·µ»ØÖµ Ö´Ðгɹ¦Ôò·µ»ØÖ¸Ïò¸ÃÄÚÈݵÄÖ¸Õ룬ÕÒ²»µ½·ûºÏµÄ»·¾³±äÁ¿Ãû³ÆÔò·µ»ØNULL¡£
·¶Àý #include<stdlib.h>
mian()
{
char *p;
if((p = getenv(“USER”)))
printf(“USER=%s\n”,p);
}
Ö´ÐÐ USER = root
¡¡
putenv£¨¸Ä±ä»òÔö¼Ó»·¾³±äÁ¿£©
Ïà¹Øº¯Êý getenv£¬setenv£¬unsetenv
±íÍ·Îļþ #include4<stdlib.h>
¶¨Ò庯Êý int putenv(const char * string);
º¯Êý˵Ã÷ putenv()ÓÃÀ´¸Ä±ä»òÔö¼Ó»·¾³±äÁ¿µÄÄÚÈÝ¡£²ÎÊýstringµÄ¸ñʽΪname£½value£¬Èç¹û¸Ã»·¾³±äÁ¿ÔÏÈ´æÔÚ£¬Ôò±äÁ¿ÄÚÈÝ»áÒÀ²ÎÊýstring¸Ä±ä£¬·ñÔò´Ë²ÎÊýÄÚÈÝ»á³ÉΪеĻ·¾³±äÁ¿¡£
·µ»ØÖµ Ö´Ðгɹ¦Ôò·µ»Ø0£¬ÓдíÎó·¢ÉúÔò·µ»Ø-1¡£
´íÎó´úÂë ENOMEM ÄÚ´æ²»×㣬ÎÞ·¨ÅäÖÃеĻ·¾³±äÁ¿¿Õ¼ä¡£
·¶Àý #include<stdlib.h>
main()
{
char *p;
if((p = getenv(&ld ......
getenv£¨È¡µÃ»·¾³±äÁ¿ÄÚÈÝ£©
Ïà¹Øº¯Êý putenv£¬setenv£¬unsetenv
±íÍ·Îļþ #include<stdlib.h>
¶¨Ò庯Êý char * getenv(const char *name);
º¯Êý˵Ã÷ getenv()ÓÃÀ´È¡µÃ²ÎÊýname»·¾³±äÁ¿µÄÄÚÈÝ¡£²ÎÊýnameΪ»·¾³±äÁ¿µÄÃû³Æ£¬Èç¹û¸Ã±äÁ¿´æÔÚÔò»á·µ»ØÖ¸Ïò¸ÃÄÚÈݵÄÖ¸Õë¡£»·¾³±äÁ¿µÄ¸ñʽΪname£½value¡£
·µ»ØÖµ Ö´Ðгɹ¦Ôò·µ»ØÖ¸Ïò¸ÃÄÚÈݵÄÖ¸Õ룬ÕÒ²»µ½·ûºÏµÄ»·¾³±äÁ¿Ãû³ÆÔò·µ»ØNULL¡£
·¶Àý #include<stdlib.h>
mian()
{
char *p;
if((p = getenv(“USER”)))
printf(“USER=%s\n”,p);
}
Ö´ÐÐ USER = root
¡¡
putenv£¨¸Ä±ä»òÔö¼Ó»·¾³±äÁ¿£©
Ïà¹Øº¯Êý getenv£¬setenv£¬unsetenv
±íÍ·Îļþ #include4<stdlib.h>
¶¨Ò庯Êý int putenv(const char * string);
º¯Êý˵Ã÷ putenv()ÓÃÀ´¸Ä±ä»òÔö¼Ó»·¾³±äÁ¿µÄÄÚÈÝ¡£²ÎÊýstringµÄ¸ñʽΪname£½value£¬Èç¹û¸Ã»·¾³±äÁ¿ÔÏÈ´æÔÚ£¬Ôò±äÁ¿ÄÚÈÝ»áÒÀ²ÎÊýstring¸Ä±ä£¬·ñÔò´Ë²ÎÊýÄÚÈÝ»á³ÉΪеĻ·¾³±äÁ¿¡£
·µ»ØÖµ Ö´Ðгɹ¦Ôò·µ»Ø0£¬ÓдíÎó·¢ÉúÔò·µ»Ø-1¡£
´íÎó´úÂë ENOMEM ÄÚ´æ²»×㣬ÎÞ·¨ÅäÖÃеĻ·¾³±äÁ¿¿Õ¼ä¡£
·¶Àý #include<stdlib.h>
main()
{
char *p;
if((p = getenv(&ld ......