我有疑问。如果我在main函数之前定义变量,如下所示:
#define N 10
然后在主要我不能改变这个变量?像这样:
N=N+1;
当它在main之前定义时,有没有办法让N更大?
答案 0 :(得分:6)
这是宏的定义,而不是全局变量。试试这个:
int i;
int main()
{
i = 10;
return 0;
}
答案 1 :(得分:1)
首先,你没有使用宏,你需要一个全局变量。
仅供参考:在编译之前,只要您使用该宏,代码中的所有宏都将被替换为实际值。
因此,如果您定义一个宏,然后再次尝试将其修改为Macro
,那么它将考虑它的最新值。
您认为自己所做的是:
#define N (10)
N = N+1; //will this change N to 11? No, It wont!
int main()
{
printf("\nI code rubbish");
return 0;
}
你能做的是:
#define N (10)
//Some more macros
#define N (50)
int i = 10;
//Will i++ work here??? No, It wont!!!
int main(void)
{
int k = 0;
i++;
k = N; //What is N here, 10 or 50? It is 50!
printf("\nDo not learn to code, instead code to learn");
return 0;
}
希望这可以告诉你理解的错误