y**b 发帖数: 10166 | 1 有好几个函数都是这样,而main()的作用只是调用这几个函数之一。这样每次main()
调用不同函数(重新编译),都得改动头文件来决定需要定义哪个宏,比较麻烦。
(之所以出现这种情况,是因为这几个函数要分别利用某个段代码的不同部分,用宏
来区分的)。
也就是说:
if 某个函数被调用
then 定义某宏
这个在c++里面如何实现?有没有更简洁的办法? |
n*****n 发帖数: 97 | 2 宏可以在make的时候定义嘛
【在 y**b 的大作中提到】 : 有好几个函数都是这样,而main()的作用只是调用这几个函数之一。这样每次main() : 调用不同函数(重新编译),都得改动头文件来决定需要定义哪个宏,比较麻烦。 : (之所以出现这种情况,是因为这几个函数要分别利用某个段代码的不同部分,用宏 : 来区分的)。 : 也就是说: : if 某个函数被调用 : then 定义某宏 : 这个在c++里面如何实现?有没有更简洁的办法?
|
y**b 发帖数: 10166 | 3 那就是说还是要清楚调用某个函数的时候需要定义哪个宏,
我想弄的傻瓜化一点,user只需知道调用某个函数就行了。
也许我原来的设计就不好,不然不会出现这种情况。
【在 n*****n 的大作中提到】 : 宏可以在make的时候定义嘛
|
S*****n 发帖数: 227 | 4 en..没code没真相。
【在 y**b 的大作中提到】 : 那就是说还是要清楚调用某个函数的时候需要定义哪个宏, : 我想弄的傻瓜化一点,user只需知道调用某个函数就行了。 : 也许我原来的设计就不好,不然不会出现这种情况。
|
r*******y 发帖数: 290 | 5 不太懂你在说啥...
基本上,avoid using #define, use const and inline instead
要不用类和虚函数?
【在 y**b 的大作中提到】 : 有好几个函数都是这样,而main()的作用只是调用这几个函数之一。这样每次main() : 调用不同函数(重新编译),都得改动头文件来决定需要定义哪个宏,比较麻烦。 : (之所以出现这种情况,是因为这几个函数要分别利用某个段代码的不同部分,用宏 : 来区分的)。 : 也就是说: : if 某个函数被调用 : then 定义某宏 : 这个在c++里面如何实现?有没有更简洁的办法?
|
D*******a 发帖数: 3688 | 6 可以用function pointer或者virtual function(一码事)
【在 y**b 的大作中提到】 : 那就是说还是要清楚调用某个函数的时候需要定义哪个宏, : 我想弄的傻瓜化一点,user只需知道调用某个函数就行了。 : 也许我原来的设计就不好,不然不会出现这种情况。
|
t****t 发帖数: 6806 | 7 why don't you take the other way around, i.e. when you see a macro, call cer
tain function.
【在 y**b 的大作中提到】 : 有好几个函数都是这样,而main()的作用只是调用这几个函数之一。这样每次main() : 调用不同函数(重新编译),都得改动头文件来决定需要定义哪个宏,比较麻烦。 : (之所以出现这种情况,是因为这几个函数要分别利用某个段代码的不同部分,用宏 : 来区分的)。 : 也就是说: : if 某个函数被调用 : then 定义某宏 : 这个在c++里面如何实现?有没有更简洁的办法?
|
s******e 发帖数: 431 | 8 如果是静态的,就用宏好了。动态的才需用function pointer
按我的理解,你就需要#ifdef,#ifdef 写好,然后在编译的时候,把你需要的宏定义上
就行了。
【在 y**b 的大作中提到】 : 那就是说还是要清楚调用某个函数的时候需要定义哪个宏, : 我想弄的傻瓜化一点,user只需知道调用某个函数就行了。 : 也许我原来的设计就不好,不然不会出现这种情况。
|
y**b 发帖数: 10166 | 9 嗯。我改了,用宏来共用一段代码虽然(自己)方便,user几乎要晕倒。
【在 s******e 的大作中提到】 : 如果是静态的,就用宏好了。动态的才需用function pointer : 按我的理解,你就需要#ifdef,#ifdef 写好,然后在编译的时候,把你需要的宏定义上 : 就行了。
|