关于#define的用法

来源:百度知道 编辑:UC知道 时间:2024/09/20 02:44:04
我定义了#define str
我想对str做赋值“123”或“234”,在一的时候str是“123”,在二的时候是“234”,怎么能做到?
不需要#define str “123”这种的

这样的话只能用Ifdef语句了,具体如下:
#define str (1或2)
#ifdef (str==1)
{#undef str;
#define str "123";}
#else
{#undef std;
#define std "456";}
其中#undef 是将用#define定制的常量解除,否则将无法重新设定

#define
是在编译的时候起作用的,程序运行时,#define已经不存在了
所以如果你的一二两种情形是编译时的条件,可以如下实现
#ifdef A
    #define str "123"
#else
    #define str "234"
#endif

定义了A是情形一
不定义A是情形二

可以用#undef命令终止宏定义的作用域

一和二是什么意思?
#define 被定义名称 定义值
你可以写#define str 123
或者#define str 234
不过定义完就是全局性的

用下面这种方式吧。想要str为234时,把#define SIGN屏蔽即可。
#define SIGN

#ifdef SIGN
#define str "123"
#else
#define str "234"
#endif

用这个好像不行吧
关注一下