繁体   English   中英

#定义一个变量值? 预处理指令

[英]#define a variable value? preprocessor directive

我想知道是否有可能在C / C ++中做出类似的事情:

int a = 5;
#define A a
printf("%s\n", A); // should print 5 (value of 'a' variable)

好的,这段代码给了我分段错误(Windows 7,Code :: Blocks):

#include <stdio.h>

int main()
{
    int a = 5;
    #define A a

    #if defined(A)
        printf("%d\n", A);
    #endif

    return 0;
}

您需要使用%d而不是%s

printf("%d\n", A);

检查出,它的工作原理!

某些编码样式可以帮助您避免许多错误,包括上面的一种。

在实际应用中,你不会知道宏将是什么,所以这将是很难%s%d之间做出选择。

有时候,这不是问题,而是导致问题的信念。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这是一种不良的编码风格:

#include <stdio.h>

int main()
{
    int a = 5;
    #define A a

    #if defined(A)
        printf("%d\n", A);
    #endif

    return 0;
}

这是可容忍的*编码样式

int main()
{
    #ifdef WIN32
        #define a 5
    #elif defined __unix__
        #define a 6
    #endif

    int A = a;

    printf("%d\n",A);

    return 0;
}
  • 取决于团队的编码策略


这是首选的编码样式:

int main()
{
    int A = 6;

    #ifdef WIN32
        A = 5;  // Windows hate 6 and *nix.
    #endif

    printf("%d\n",A);

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM