CÖÐÔ¤±àÒëºê¶¨Òå
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
Ïà¹ØÎĵµ£º
ÔÚCÓïÑÔ±à³ÌÖУ¬staticµÄÒ»¸ö×÷ÓÃÊÇÐÅÏ¢ÆÁ±Î£¡
±È·½Ëµ£¬Äã×Ô¼º¶¨ÒåÁËÒ»¸öÎļþ -- ¸ÃÎļþÖÐÓÐһϵÁеĺ¯ÊýÒÔ¼°±äÁ¿µÄÉùÃ÷ºÍ¶¨Ò壡
ÄãÏ£Íû¸ÃÎļþÖеÄһЩº¯ÊýºÍ±äÁ¿Ö»Äܱ»¸ÃÎļþÖеĺ¯ÊýʹÓã¬ÄÇô£¬Äã¿ÉÒÔÔڸú¯Êý¡¢±äÁ¿µÄÇ°Ãæ¼ÓÉÏstatic£¬´ú±íËûÃÇÖ»Äܱ»µ±Ç°ÎļþÖеĺ¯ÊýʹÓã¡
¶øÔÚC++ÖУ¬ÓÃstaticÀ´×÷ΪÐÅÏ¢ ......
SQLite3ÊÇSQLiteÒ»¸öȫеİ汾,ËüËäÈ»ÊÇÔÚSQLite 2.8.13µÄ´úÂë»ù´¡Ö®ÉÏ¿ª·¢µÄ,µ«ÊÇʹÓÃÁ˺Í֮ǰµÄ°æ±¾²»¼æÈݵÄÊý¾Ý¿â¸ñʽºÍAPI. SQLite3ÊÇΪÁËÂú×ãÒÔϵÄÐèÇó¶ø¿ª·¢µÄ:
Ö§³ÖUTF-16±àÂë.
Óû§×Ô¶¨ÒåµÄÎı¾ÅÅÐò·½·¨.
¿ÉÒÔ¶ÔBLOBs×ֶν¨Á¢Ë÷Òý.
Òò´ËΪÁËÖ§³ÖÕâÐ©ÌØÐÔÎҸıäÁËÊý¾Ý¿âµÄ¸ñʽ,½¨Á¢ÁËÒ»¸öÓë֮ǰ°æ±¾²»¼æÈݵ ......
ÎÒ²»»á˵ΪʲôÔÚc++ÖÐÓÃconst±ÈdefineºÃ£¬ÒòΪÎÒ×Ô¼º¶¼Ã»ÓжàºÃµØÁìÎòµ½£¬·´¶ø»¹¾õµÃdefineÄܹ»Íê³É¸üÇ¿´óµÄ¹¦ÄÜ£¬Ö»ÒªÊ¹Óõõ±¡£
ÔÚÕâÀïҪ˵µÄÖ»ÊÇÒ»¸öС¼¼ÇÉ£¬¸ø×Ô¼º±¸ÍüÓõġ£
constÔÚCºÍC++ÖÐ×î´óµÄ²»Í¬ÊÇ£¬ÔÚCÖУ¬constĬÈϾßÓÐÍⲿÁ´½Ó£¬¶øC++ÖÐÔòÊÇÄÚ²¿Á´½Ó£¬ÄÇôÓÃÆðÀ´ÓÐʲô²»Í¬ÄØ£¿
¼ÙÈçÎÒ¶¨ÒåÁË
const int ......
C Runtime Library
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬ Dennis Ritchie ºÍ Brian ......
extern "C"°üº¬Ë«Öغ¬Ò壬ÆäÒ»£º±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä¶þ£º±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£
1£©±»extern “C”ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵ģ»
externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö£¬¸Ã¹Ø¼ü×Ö¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿É ......