【问题标题】:How to insert preprocessor value in a vector<int>?如何在 vector<int> 中插入预处理器值?
【发布时间】:2015-06-15 16:24:26
【问题描述】:
#define HEADER = 5
int _tmain(int argc, _TCHAR* argv[])
{
  vector<int> v;
  v.push_back(HEADER);
  return 0;
}  

为什么这段代码给我一个语法错误?
就我而言,预处理器被视为 int。

【问题讨论】:

  • #include &lt;vector&gt;了吗?也可以使用std::vector&lt;int&gt; v;
  • 是的,我做了,如果我插入 0 它编译没有错误

标签: c++ stl c-preprocessor


【解决方案1】:

#define HEADER = 5HEADER 替换为 = 5
你想要#define HEADER 5 没有=

旁注,不要使用非标准的_tmain

#include <vector>  
#define HEADER 5
int main(int argc, char* argv[])
{
  std::vector<int> v;
  v.push_back(HEADER);
  return 0;
}  

编译没有语法错误。

【讨论】:

  • @max 显示完整消息。 ) 没有错误消息。它编译得很好,例如。这里:ideone.com/nUgdy7
  • 错误 C2143:语法错误:在 ';' 之前缺少 ')'错误 C2059:语法错误:')'
  • @max 您使用了错误的项目模式进行编译。可能改回_tmain(),以编译它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2012-06-20
  • 2013-05-28
相关资源
最近更新 更多