C++´¦ÀíconstÀàÐͱäÁ¿ÓëCµÄ²»Í¬
constÓë#define×î´óµÄ²î±ð£¬ConstÔÚ¶ÑÕ»·ÖÅäÁ˿ռ䣬¶ø#defineÖ»ÊǰѾßÌåÊýÖµÖ±½Ó´«µÝµ½Ä¿±ê±äÁ¿°ÕÁË¡£»òÕß˵£¬constµÄ³£Á¿ÊÇÒ»¸öRun-TimeµÄ¸ÅÄËûÔÚ³ÌÐòÖÐȷȷʵʵµÄ´æÔÚ¿ÉÒÔ±»µ÷Óᢴ«µÝ¡£¶ø#define³£Á¿ÔòÊÇÒ»¸öCompile-Time¸ÅÄËüµÄÉúÃüÖÜÆÚÖ¹ÓÚ±àÒëÆÚ£ºÔÚʵ¼Ê³ÌÐòÖÐËûÖ»ÊÇÒ»¸ö³£Êý¡¢Ò»¸öÃüÁîÖеIJÎÊý£¬Ã»ÓÐʵ¼ÊµÄ´æÔÚ¡£
¡¡¡¡@ const³£Á¿´æÔÚÓÚ³ÌÐòµÄÊý¾Ý¶Î¡£
¡¡¡¡@ #define³£Á¿´æÔÚÓÚ³ÌÐòµÄ´úÂë¶Î¡£
ÎÒÃÇÒª°ÑÕâ¸öÎÊÌâ·Ö²»Í¬µÄ±àÒëÆ÷À´¿´¡£ËùÒÔÒ»°ãÎÒÃÇÈÏΪ£¬Const³£Á¿ÊÇ·ÖÅäÁËÄÚ´æ¿Õ¼äµÄ£¬¶øÇÒÖ»·ÖÅäÒ»´Î£¬ÔÚʹÓÃConst³£Á¿Ê±ÓëʹÓñäÁ¿µÄÒýÓ÷½Ê½Ò»Ñù£¬ÈçÍõsanËù½²¡ºÊ¹ÓÃconst³£Á¿»¹¿ÉÒÔ±ÜÃâÄ¿±êÂëµÄ¶à·Ý¸´ÖÆ¡£ÔÚ³ÌÐòÖУ¬½öÓÐÒ»¸öÄÚ´æÀ´´æ·Å³£Á¿¡»
µ«ÊǸù¾Ý±àÒëÆ÷µÄ²»Í¬£¬»¹ÂÔÓв»Í¬¡£
¡ôC±àÒëÆ÷
ÔÚC±àÒëÏ£¬Const³£Á¿ÊÇÍêÈ«·ÖÅäÁËÄÚ´æ¿Õ¼äµÄ£¬ÔÚʹÓÃʱ£¬ÊÇÏñ±äÁ¿Ò»ÑùÀ´Ê¹Óõġ£²Î¼ûÒÔÏÂʵÑé´úÂë¡£
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
3: const int a = 100;
4: main()
5: {
7: int x = a;
00401028 mov eax,[_a (0041f01c)]
0040102D mov dword ptr [ebp-4],eax
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
¡ôC++±àÒëÆ÷
ΪÁËÌá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ£¬c++µÄ±àÒëÆ÷ͨ³£²»ÎªÆÕͨconst³£Á¿·ÖÅä´æ´¢¿Õ¼ä£¬¶øÊǽ«ËüÃDZ£´æÔÚ·ûºÅ±íÖУ¬ÕâʹµÃËü³ÉΪһ¸ö±àÒëÆÚ¼äµÄ³£Á¿£¬Ã»ÓÐÁË´æ´¢Óë¶ÁÄÚ´æµÄ²Ù×÷£¬Ê¹µÃËüµÄЧÂÊÒ²ºÜ¸ß£¬ÕâʱConst³£Á¿ÊǺÍ#define³£Á¿Ò»ÑùµÄ¡£ÈçÀîsanʵÑéµÄ½á¹ûÒ»Ñù¡º´Ó»ã±à´úÂë¿´£¬Á½ÖÖ·½·¨µÄ»ã±à´úÂëÊÇÏàͬµÄ£¬ËùÒÔÄ¿±êÂë¶à·Ý¸´ÖƺÃÏñÒ²²»³ÉÁ¢¡»¡£
µ«ÊÇC++±àÒëÆ÷¶Ô³ýÁËÖ±½Ó¶¨ÒåµÄConst³£Á¿Í⣬¶¼ÊÇ·ÖÅäÄÚ´æµÄ¡£ËùÒÔ£¬ÓÐÒÔÏÂÀ´ÄǸöÁ½ÖÖÇé¿ö¡£
1.·ÖÅäÄÚ´æµÄÇé¿ö:
extern const int bufsz; //ÍⲿÉùÃ÷
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7: #define TEST_DATA_DEF 100;
9: extern const int ccd;
14: int a = TEST_DATA_DEF;
00401028 mov dword ptr [ebp-4],64h
15: int b = ccd;
0040102F mov eax,[ccd (0042201c)]
00401034 mov dword ptr [ebp-8],eax
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2. ²»·ÖÅäÄÚ´æµÄÇé¿ö:
const int bufsz = 100; //È«¾Ö³£Á¿
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
12: const int test = 100;
004
Ïà¹ØÎĵµ£º
gcc£¬gdbµÄʹÓÃ
×÷Õߣºzccst
ÉÏÖÜÎåÔÚͼÊé¹Ý½èÁËÒ»±¾¡¶LinuxÈí¼þ¹¤³Ìʦ£¨CÓïÑÔ£©ÊµÓý̡̳·£¬ÈÃÎÒÊÕ»ñÁ¼¶à¡£²»½ö½öÊÇÊéÖеÄ֪ʶ£¬»¹ÓжÔ֪ʶÌåϵºÍ¼Ü¹¹ÈÏʶµÄÉîÈë¡£
LinuxÏÂC¿ª·¢£º
1£¬gcc,gdbµÄʹÓá£
2£¬MakefileÎļþµÄ±àд¡£
3£¬ÏµÍ³º¯ÊýµÄʹÓÃ
4£¬Îļþ²Ù×÷
5£¬´®ÐÐͨÐÅ
6£¬½ø³Ì¿ØÖÆ
7£¬½ø³Ì¼ ......
1.½éÉÜÒ»ÏÂSTL£¬Ïêϸ˵Ã÷STLÈçºÎʵÏÖvector.
Answer£º
STL £¨±ê׼ģ°æ¿â£¬Standard Template Library.ËüÓÉÈÝÆ÷Ëã·¨µü´úÆ÷×é³É¡£
STLÓÐÒÔϵÄһЩÓŵ㣺¿ÉÒÔ·½±ãÈÝÒ×µØÊµÏÖËÑË÷Êý¾Ý»ò¶ÔÊý¾ÝÅÅÐòµÈһϵÁеÄËã·¨£»µ÷ÊÔ³ÌÐòʱ¸ü¼Ó°²È« ºÍ·½±ã£»¼´Ê¹ÊÇÈËÃÇÓÃSTLÔÚ ......
In C programming language, the observer design pattern is implemented with function pointer (aka callback function). But in Qt library, it introduces signal and slot. How to link a callback function from the C callback function to the C++ siganl and slot is a problem I encounter. Call back function ......
Java¿çƽ̨µÄÌØÐÔʹJavaÔ½À´Ô½ÊÜ¿ª·¢ÈËÔ±µÄ»¶Ó£¬µ«Ò²ÍùÍù»áÌýµ½²»Éٵı§Ô¹£ºÓÃJava¿ª·¢µÄͼÐÎÓû§´°¿Ú½çÃæÃ¿´ÎÔÚÆô¶¯µÄʱºò¶¼»áÌø³öÒ»¸ö¿ØÖÆÌ¨´°¿Ú£¬Õâ¸ö¿ØÖÆÌ¨´°¿ÚÈñ¾À´·Ç³£°ôµÄ½çÃæÊ§É«²»ÉÙ¡£ÔõôÄܹ»ÈÃͨ¹ýJava¿ª·¢µÄGUI³ÌÐò²»µ¯³öJavaµÄ¿ØÖÆÌ¨´°¿ÚÄØ£¿ÆäʵÏÖÔںܶàÁ÷ÐеĿª·¢»·¾³ÀýÈçJBuilder¡¢Eclipse¶¼ÊÇʹÓô¿Java ......