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
Ïà¹ØÎĵµ£º
¡¡¡¡ÒýÑÔ
¡¡¡¡Ö¸ÕëÊÇC/C++ÓïÑÔµÄÌØÉ«£¬¶øÊý×éÃûÓëÖ¸ÕëÓÐÌ«¶àµÄÏàËÆ£¬ÉõÖÁºÜ¶àʱºò£¬Êý×éÃû¿ÉÒÔ×÷ΪָÕëʹÓá£ÓÚÊǺõ£¬ºÜ¶à³ÌÐòÉè¼ÆÕ߾ͱ»¸ãºýÍ¿ÁË¡£¶øÐí¶àµÄ´óѧÀÏʦ£¬ËûÃÇÔÚCÓïÑԵĽÌѧ¹ý³ÌÖÐÒ²´íÎóµÃ¸øÑ§Éú½²½â£º"Êý×éÃû¾ÍÊÇÖ¸Õë"¡£ºÜÐÒÔË£¬ÎҵĴóѧÀÏʦ¾ÍÊÇÆäÖÐÖ®Ò»¡£Ê±ÖÁ½ñÈÕ£¬ÎÒÈÕ¸´Ò»ÈյؽøÐÐ×ÅC/C++ÏîÄ¿µÄ¿ª·¢£¬¶øÉ ......
´òÓ¡×Ô¼ºµÄÒ»¶ÎƯÁÁC³ÌÐò
#include <stdio.h>
int main()
{
char *p ="#include <stdio.h>%c int main(){char *p=%c%s%c; printf(p, 10, 34, p, 34);}";
printf(p, 10, 34, p, 34);
} ......
¹ØÓÚº¯ÊýÖ¸ÕëÊý×éµÄ¶¨Òå
¹ØÓÚº¯ÊýÖ¸ÕëÊý×éµÄ¶¨Òå·½·¨£¬ÓÐÁ½ÖÖ£ºÒ»ÖÖÊDZê×¼µÄ·½·¨£»Ò»ÖÖÊÇÃÉÆ·¨¡£
µÚÒ»ÖÖ£¬±ê×¼·½·¨£º
{
·ÖÎö£ºº¯ÊýÖ¸ÕëÊý×éÊÇÒ»¸öÆäÔªËØÊǺ¯ÊýÖ¸ÕëµÄÊý×é¡£ÄÇôҲ¾ÍÊÇ˵£¬´ËÊý¾Ý½á¹¹ÊÇÊÇÒ»¸öÊý×飬ÇÒÆäÔªËØÊÇÒ»¸öÖ¸Ïòº¯ÊýÈë¿ÚµØÖ·µÄÖ¸Õë¡£
¸ù¾Ý·ÖÎö£ºÊ×ÏÈ˵Ã÷ÊÇÒ»¸öÊý×飺Êý×éÃû[]
Æä´Î£¬ÒªËµÃ ......
1.strlen()
ʵÏÖ£º
size_t strlen(const char *s)
{
size_t n;
for(n = 0; *s != '\0'; s++)
++n;
return n;
  ......