有些参数包含"quot;逗号,例如一个参数中的num、val、int。
例如,`定义ACTION_DO(num,val,int(
实际上只作为一个自变量通过,有没有办法包括"逗号在代码中,并且不会被编译器单独假设为3参数?
不幸的是,没有好的通用方法来处理宏中包含逗号的单个参数。有几种可能性可能适合也可能不适合您的使用模式:
- 带引号的字符串,它们总是被视为单个参数
- 在括号或方括号内列出的参数。但在这种情况下,括号和大括号将是参数的一部分:
以下将起作用:
`define PRINT(A) $display A
...
`PRINT(("a=%b, b=%b, c=%b", a, b, c));
将扩展到$display ("a=%b, b=%b, c=%b", a, b, c)
以下将在编译时失败
`define PRINT(A) $display("a=%b b=%b c=%b", A)
`PRINT((a, b, c));
因为扩展CCD_ 2在语法上是错误的。