[英]#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;
}
某些编码样式可以帮助您避免许多错误,包括上面的一种。
在实际应用中,你不会知道宏将是什么,所以这将是很难%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.