【问题标题】:Pre-processor macro variables预处理器宏变量
【发布时间】:2013-02-27 16:39:47
【问题描述】:

我有代码:

#DEFINE NEW = 1;

还有一个结构:

typedef struct PCB
{

 /*Process state:new, ready, running, waiting, terminated*/
 int state;
 }PCB;

如何分配 NEW,例如 state=1?

更多信息,我得到了错误:

expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token

【问题讨论】:

  • #DEFINE NEW = 1; 去掉分号和'=',转为小写。
  • 这些被称为预处理器宏,而不是“散列定义的变量”。我建议您在尝试编写整个操作系统之前阅读 C 的基础知识。
  • 对不起,人只是一个快速的问题,不记得去年的编程,我是 c 的菜鸟,忘记了。而且我不是在写一个完整的操作系统,只是一个进程调度程序。这对我来说很难......但是谢谢
  • 认为它是散列定义的变量,因为你定义的散列和变量名
  • 顺便说一句:您不能在结构定义(或 typedef)中初始化。首先:定义一个结构,然后使用(实例化)它,可能使用 NEW 宏的扩展。

标签: c hash struct c-preprocessor assign


【解决方案1】:

删除分号和=

#DEFINE NEW 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-15
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2020-02-09
    • 1970-01-01
    相关资源
    最近更新 更多