Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 赢得';t用C,C+编译+;以及带有特定错误消息的Obj-C_C++_Objective C_C_Macros - Fatal编程技术网

C++ 赢得';t用C,C+编译+;以及带有特定错误消息的Obj-C

C++ 赢得';t用C,C+编译+;以及带有特定错误消息的Obj-C,c++,objective-c,c,macros,C++,Objective C,C,Macros,我正在用另一个宏替换一个C风格的宏 #define OldMacro(…) {…} #define NewMacro(…) {…} 我想重写旧版本的宏,使其无法编译并显示特定的错误消息,例如:“OldMacro()已弃用;请改用NewMacro()”。这可能吗 也可以用C、C++和Objul-C. < P>使用这个宏定义: #define OLD_MACRO() (error_use_of_OLD_MACRO_is_deprecated = 0) #define OldMacro(…)c

我正在用另一个宏替换一个C风格的宏

#define OldMacro(…) {…}

#define NewMacro(…) {…}
我想重写旧版本的宏,使其无法编译并显示特定的错误消息,例如:“OldMacro()已弃用;请改用NewMacro()”。这可能吗


也可以用C、C++和Objul-C.</P> < P>使用这个宏定义:

#define OLD_MACRO()  (error_use_of_OLD_MACRO_is_deprecated = 0)

#define OldMacro(…)char oldMacroIsDeprecatedUseNewMacroInIt[0]
@MooingDuck:如果编译器(例如默认情况下为gcc)允许零大小数组,则这将不起作用。@MooingDuck:或
@
在使用宏时强制出现语法错误。这并不能回答您的问题,但您可能想看看的问题10.4。@KeithThompson:有些编译器可能接受
@
(我知道有几个编译器接受
$
)。无效数组大小的优点是在错误消息中打印对象的名称,而
@
可能不会,这比数组技巧I更适用于多种情况think@MooingDuck您知道有一种情况下它不起作用,除非有人定义了一个非常量错误\u use\u of\u OLD\u MACRO\u is\u不推荐的整数兼容变量?