看网上说法不一。如果是为程序中的通用变量定义的话(就像VB中的Public一样)。那指针不是也可以么?还有。在main()之外定义变量不是也可以整个程序通用么?
æ主è¦æ两ç¹ç¨éã
让ä¸ä¸ªåéé¿æææï¼èä¸ç®¡å ¶æ¯å¨ä»ä¹å°æ¹è¢«ç³æãæ¯å¦ï¼
int fun1()
{
static int s_value = 0;
....
}
é£ä¹fun1ä¸ç®¡å¨ä»ä¹å°æ¹è¢«è°ç¨ï¼å½å½æ°éåºåï¼s_valueæåçå¼å°ä¸ç´ä¼è¢«ç³»ç»ä¿åï¼ç¸å½äºä¸ä¸ªå ¨å±åéï¼ï¼ä¸æ¬¡s_valueå被ç¨å°æ¶ï¼ä¹å³å½fun1()å次被è°ç¨æ¶ï¼s_valueåå§å¼å°æ¯æè¿è¢«ä¿åè¿çå¼ï¼è¯·æ³¨æs_valueåå§åæä½åªä¼è¢«æ§è¡ä¸æ¬¡ï¼å³ä¸è¿°s_value =0 è¿ä¸ªè¯å¥ï¼ã
2.é¿å å¤ä¸ªæ件使ç¨äºç¸åçåéåè导è´å²çª
ãæ¯å¦æå¤ä¸ªæ件ï¼åå«ç±å 个人ç¬ç«å¼åçãåå®ä»ä»¬å¨åèªçæ件ä¸å®ä¹ç¸åçâå ¨å±âåéåï¼ä» ä» æå¨ä»ä»¬ç¬èªçæ件ä¸å ¨å±ï¼ï¼å½ç³»ç»éææ¶ï¼ç±äºä»ä»¬ä½¿ç¨äºååä¸æ ·çâå ¨å±âåéï¼å¯¼è´æé¾äºéè§çé®é¢ã解å³è¿ä¸ªé®é¢æ¹ä¾¿çåæ³å°±æ¯å¨åèªæ件ä¸ï¼å¨ç¸åçå ¨å±åéç³æåå ä¸static修饰符ãè¿æ ·ç³»ç»å°±ä¼ä¸ºä»ä»¬åé ä¸åçå åï¼äºä¸å½±åäºã
那跟#define又有什么区别呢?
追答使用#define预处理宏定义命令,它的具体作用,就是方便程序段的定义和修改。
例如,如果说你在做一个项目,这个项目的代码很长,而且基本上裏面的同一个常量N就占了很多行,如果说你要对这个常量N的值进行修改,而在程序的开始没有定义一个#define N,那么改起来就会很麻烦至于专业的,我就不太清楚了