• 请不要在回答技术问题时复制粘贴 AI 生成的内容
patrickstar
V2EX  ›  程序员

VS 2013 下如何进行 #define 啊(C++)

  •  
  •   patrickstar · Sep 1, 2016 · 3196 views
    This topic created in 3571 days ago, the information mentioned may be changed or developed.
    下面的代码在 g++ 下没有任何问题,但是在 VS2013 下直接编译错误 (syntax error : missing ';' before identifier 'RELEASE')

    #define LIB_BUILDTIME RELEASE " " __DATE__ " " __TIME__
    const char version_string[] = "$Build: " LIB_BUILDTIME " $";

    不知道为何在 VS 2013 下无法链接字符串
    5 replies    2016-09-01 14:05:41 +08:00
    acros
        1
    acros  
       Sep 1, 2016
    不知道从哪开始吐槽好,你是想输出编译时间?
    C++字符串链接是##
    wevsty
        2
    wevsty  
       Sep 1, 2016
    VS 下面并没有 RELEASE 这样的一个预处理宏定义,对 VS 来说所以 RELEASE 并不是一个有效的字符串,是一个未知的东西,所以也不可能做字符串拼接。
    wevsty
        3
    wevsty  
       Sep 1, 2016
    @acros 楼主这样直接"str1""str2"也是可以的语法上是允许的,编译器会自动处理拼接字符串
    acros
        4
    acros  
       Sep 1, 2016
    哦。我明白楼主第一句的意思了
    RELEASE 和 DEBUG 默认没有声明的, vs 下是_DEBUG 吧

    另外这个不需要加""去连接
    #define LIB_BUILDTIME __DATE__ __TIME__
    这样就是一个字符串了
    acros
        5
    acros  
       Sep 1, 2016
    @wevsty 我还以为他把 RELEASE 前的下划线漏了···
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4345 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 10:05 · PVG 18:05 · LAX 03:05 · JFK 06:05
    ♥ Do have faith in what you're doing.