是否有可能写有空间,如定义:#定义与空间
#define replace to replacement here
我想用“更换这里”取代“替换到”。
编辑:
我想测试私有成员:
我没写
#define private public
但它并没有为私有槽Qt中
工作所以我的打算是使用类似
#define private slots: public slots:
无论如何,我已经找到了另一种方式来测试插槽,并通过我意识到这是一个丑陋的黑客。
是否有可能写有空间,如定义:#定义与空间
#define replace to replacement here
我想用“更换这里”取代“替换到”。
编辑:
我想测试私有成员:
我没写
#define private public
但它并没有为私有槽Qt中
工作所以我的打算是使用类似
#define private slots: public slots:
无论如何,我已经找到了另一种方式来测试插槽,并通过我意识到这是一个丑陋的黑客。
不,你不能
#define identifier something
定义必须是一个标识符不能包含空格什么。也不能包含连字符,以数字开始,等你只能定义一个标识符
你写什么工作
#define replace to replacement here
,但并不像你期望的那样。此行定义replace
将被替换为to replacement here
hth。
你可以这样做......
#define replace replacement
#define to here
当心定义的意想不到的副作用。他们完成工作后可能会想要#undef
。
这听起来像你试图做的事情会更好地通过全球搜索和替换服务。
如果你正在做单元测试,就可以编译你的文件用下列标志
-Dprivate=public
然后在你的单元测试,你就可以打电话给你的类的每一个私有方法。
编辑:
我最近指出,使用-fno的访问控制标记上gcc编译器允许您访问私有方法或成员。有关该主题的更多信息可以在这里找到:Unit testing with -fno-access-control
正如其他人所说,这是不可能的。将问题颠倒过来,*目标*是什么? – 2011-03-04 12:41:12
如果您想永久更改它,请通过'sed'脚本运行您的源代码。 – dreamlax 2011-03-04 12:52:53
无论如何您都不允许#define关键字,所以这里有一个双重错误。如果它不起作用,是不是有些代码(一个库?)已经用适当的关键字编译了? – 2011-03-04 17:23:00