CÖÐÔ¤±àÒëºê¶¨Òå
2010-01-07 11:49
ÔÚ½«Ò»¸öCÔ´³ÌÐòת»»Îª¿ÉÖ´ÐгÌÐòµÄ¹ý³ÌÖÐ, ±àÒëÔ¤´¦ÀíÊÇ×î³õµÄ²½Öè. ÕâÒ»²½ÖèÊÇÓÉÔ¤´¦ÀíÆ÷(preprocessor)À´Íê³ÉµÄ. ÔÚÔ´Á÷³ÌÐò±»±àÒëÆ÷´¦Àí֮ǰ, Ô¤´¦ÀíÆ÷Ê×ÏȶÔÔ´³ÌÐòÖеÄ"ºê(macro)"½øÐд¦Àí.
C ³õѧÕß¿ÉÄܶÔÔ¤´¦ÀíÆ÷ûʲô¸ÅÄî, ÕâÊÇÇéÓпÉÔµÄ: Ò»°ãµÄC±àÒëÆ÷¶¼½«Ô¤´¦Àí, »ã±à, ±àÒë, Á¬½Ó¹ý³Ì¼¯³Éµ½Ò»ÆðÁË. ±àÒëÔ¤´¦ÀíÍùÍùÔÚºǫ́ÔËÐÐ. ÔÚÓеÄC±àÒëÆ÷ÖÐ, ÕâЩ¹ý³ÌͳͳÓÉÒ»¸öµ¥¶ÀµÄ³ÌÐòÀ´Íê³É, ±àÒëµÄ²»Í¬½×¶ÎʵÏÖÕâЩ²»Í¬µÄ¹¦ÄÜ. ¿ÉÒÔÖ¸¶¨ÏàÓ¦µÄÃüÁîÑ¡ÏîÀ´Ö´ÐÐÕâЩ¹¦ÄÜ. ÓеÄC±àÒëÆ÷ʹÓ÷ֱðµÄ³ÌÐòÀ´Íê³ÉÕâЩ²½Öè. ¿Éµ¥¶Àµ÷ÓÃÕâЩ³ÌÐòÀ´Íê³É. ÔÚgccÖÐ, ½øÐбàÒëÔ¤´¦ÀíµÄ³ÌÐò±»³ÆΪCPP, ËüµÄ¿ÉÖ´ÐÐÎļþÃûΪcpp.
±àÒëÔ¤´¦ÀíÃüÁîµÄÓï·¨ÓëCÓïÑÔµÄÓï·¨ÊÇÍêÈ«¶ÀÁ¢µÄ. ±ÈÈç: Äã¿ÉÒÔ½«Ò»¸öºêÀ©Õ¹ÎªÓëCÓï·¨¸ñ¸ñ²»ÈëµÄÄÚÈÝ, µ«¸ÃÄÚÈÝÓëºóÃæµÄÓï¾ä½áºÏÔÚÒ»¸öÈôÄÜÉú³ÉºÏ·¨µÄCÓï¾ä, Ò²ÊÇ¿ÉÒÔÕýÈ·±àÒëµÄ.
(Ò») Ô¤´¦ÀíÃüÁî¼ò½é
Ô¤´¦ÀíÃüÁîÓÉ#(hash×Ö·û)¿ªÍ·, Ëü¶ÀÕ¼Ò»ÐÐ, #֮ǰֻÄÜÊÇ¿Õ°×·û. ÒÔ#¿ªÍ·µÄÓï¾ä¾ÍÊÇÔ¤´¦ÀíÃüÁî, ²»ÒÔ#¿ªÍ·µÄÓï¾äΪCÖеĴúÂëÐÐ. ³£ÓõÄÔ¤´¦ÀíÃüÁîÈçÏÂ:
#define ¶¨ÒåÒ»¸öÔ¤´¦Àíºê
#undef È¡ÏûºêµÄ¶¨Òå
#include °üº¬ÎļþÃüÁî
#include_next Óë#includeÏàËÆ, µ«ËüÓÐ×ÅÌØÊâµÄÓÃ;
#if ±àÒëÔ¤´¦ÀíÖеÄÌõ¼þÃüÁî, Ï൱ÓÚCÓï·¨ÖеÄifÓï¾ä
#ifdef ÅжÏij¸öºêÊÇ·ñ±»¶¨Òå, ÈôÒѶ¨Òå, Ö´ÐÐËæºóµÄÓï¾ä
#ifndef Óë#ifdefÏà·´, ÅжÏij¸öºêÊÇ·ñδ±»¶¨Òå
#elif Èô#if, #ifdef, #ifndef»òÇ°ÃæµÄ#elifÌõ¼þ²»Âú×ã, ÔòÖ´ÐÐ#elifÖ®ºóµÄÓï¾ä, Ï൱ÓÚCÓï·¨ÖеÄelse-if
#else Óë#if, #ifdef, #ifndef¶ÔÓ¦, ÈôÕâЩÌõ¼þ²»Âú×ã, ÔòÖ´ÐÐ#elseÖ®ºóµÄÓï¾ä, Ï൱ÓÚCÓï·¨ÖеÄelse
#endi
ÎÄռǼÁË×÷ÕßÔÚS3C2440¿ª·¢°åÉÏʵÏÖ°´¼üµãÁÁLEDÇý¶¯¿ª·¢µÄÏêϸ¹ý³Ì£¬»¹¼Ç¼ÁËһЩÈÝÒ׳öÏֵĴíÎó£¬ÒÔ¼°Ôõô½â¾öÕâЩ´íÎó¡£
Ò»¡¢Çý¶¯¿ª·¢Á÷³Ì
LinuxÇý¶¯¿ª·¢²»Í¬ÓÚÓ¦ÓóÌÐòµÄ¿ª·¢¡£Çý¶¯¿ª·¢ÊÇÖ±½ÓºÍÓ²¼þ´ò½»µÀµÄ£¬Í¨¹ý¶ÔÓ²¼þµÄ²Ù×÷¸øÓ¦ÓóÌÐòÌṩһЩ½Ó¿Úº¯Êý£¬Ê¹µÃÓ¦ÓóÌÐòÄܹ»&l ......