在main之前定义变量

时间:2013-11-26 11:04:45

标签: c variables

我有疑问。如果我在main函数之前定义变量,如下所示:

#define N 10

然后在主要我不能改变这个变量?像这样:

N=N+1;

当它在main之前定义时,有没有办法让N更大?

2 个答案:

答案 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;
}

希望这可以告诉你理解的错误